에세이를 기록 할 수있는 기존 웹 앱이 있습니다.기존 웹 응용 프로그램을위한 RESTful API 설계에 대한 질문
사용자는 에세이의 새 개정판을 시작하거나, 저장하거나, 다시 시작하거나, 제출할 수 있습니다 (채점). 개정판이 제출되면 완료로 표시되고 나중에 개정되지 않습니다. 사용자가 새 버전을 시작하면 이전 응답이 현재 버전으로 복사됩니다. 사용자가 개정을 다시 시작하면 현재 개정 (즉, 진행 중)으로 작업합니다. 저장되었지만 제출되지 않은 개정이 '진행 중'상태입니다.
우리는 클라이언트 응용 프로그램에서 동일한 작업을 수행 할 수있는 API를 설계해야합니다.
첫 번째 단계에서 우리는 최신 버전의 에세이를 얻을 필요가 있습니다 (진행 중이거나 완료되었거나 아직 존재하지 않을 수 있으므로 (단지 템플릿 만 반환)). 이
<revision>
<id> </id>
<response> </response>
<status> </status>
</revision>
나중에 클라이언트 앱이 변경된 개정을 보내야 같은
GET user/{userid}/revisions/mostrecent
개정의 형식은 STH 될 것이다. 내가 에세이 개정의 서로 다른 상태를 처리하는 방법을 잘 모르겠습니다 그러나
은 ('진행 중' 'COMPLETE'), 즉 클라이언트 응용 프로그램은 개정 상태에 따라 다른 PUT/POST 작업을하거나,해야한다 그냥 POST sth 및 모든 서버 쪽 (내가 RESTful API를 믿지 다음) 처리해야합니다?
나는 새로운 버전을 보내는 것이라고 생각 :
POST user/{userid}/revisions
그리고 현재 버전 업데이트 다음을 설정하여 (
PUT user/{userid}/revisions/{id}
하지만 어떻게 개정이뿐만 아니라 구원을 제출해야 함을 구별하는 방법을 상태를 'INPROGRESS'로 변경)?
그리고 여러 개의 IN PROGRESS 개정판을 만드는 것을 방지하는 방법 (이미 'INPROGRESS'개정판이 있으면 POST가 실행되지 않습니다)?
이전 버전을 업데이트하는 것을 방지하는 방법
(상태가 = 다음 PUT COMPLETE가 금지되는 경우?) 어떤 힌트이나 제안에 대한
감사합니다.
id는 개정판입니다 (동일한 이름의 개정판과 에세이 모두 사용하고 있습니다). – matali