Restlet API 집합을 가장 잘 레이아웃하는 방법을 알아 내려고하고 있습니다. 나는 표준 엔티티 CRUD를 가질 수있는 User 엔티티를 가지고있다.이 엔티티는 안락하게 잘 어울리지 만, "리셋 패스워드"나 "종료"와 같은 것들도있다.한 엔터티에서 여러 작업을 다시 시작하십시오.
무엇을 배치하는 가장 좋은 방법은 무엇입니까?
/1.0/user/update //perhaps this would just be a PUT on /1.0/user
/1.0/user/resetPassword //This would reset the password, but also send an email.
/1.0/user/terminate //This might do some additional cleanup
가 그럼 난이 (사이비)처럼 보일 수 있습니다 정말이
/1.0/user/{actionType}
그리고 처리 코드와 같은 첨부 것이라고 된 UserResource을 만들 것 : 여기
내가 무슨 생각입니다action = request.getAttributes().get("actionType");
if (action == "update") {
do update
} elif (action == "resetpassword") {
do resetpassword
} elif (action == "terminate") {
do terminate
}
정말 좋지 않습니까? 정말 닌자 아이디어?
'/1.0/user? op = resetPassword'는'/1.0/resetPassword? userId = xyzzy'와 마찬가지로 RESTful과 거리가 멀습니다. RESTful RPC over HTTP가 없습니다 –
@JarrodRoberson 죄송합니다, 저는 정중하게 반대합니다. 클라이언트가
으로 이동 한 다음 GET /1.0/user?op=resetPassword를 생성하면 RPC와 멀리 떨어져 있습니다. RPC vs REST는 URI의 형식이나 구조에서 * 아닙니다 *이며, 클라이언트가 URI를 파악하고 클라이언트에서 하드 코딩되었거나 런타임에 발견되었는지 여부에 따라 달라집니다. – mogsie