이 소리는 RPC 호출과 비슷합니다. 구체적으로 말하자면, "여기에 URL 목록이있어서 저에게 아카이브를 보내주십시오".
REST는 RPC 기반 시스템이 아니기 때문에이 프로세스는 특히 RESTful이 아닙니다.
당신이해야 할 일은 아카이브를 재원으로 취급하고 그것을 만들고 나서 제공하는 것입니다.
당신이 할 수 예를 들어 결과
POST /archives
Content-Type: application/json
{ "image1": "http://ww.o.com/1.gif",
"image2": "http://www.foo.be/2.gif" }
, 당신이 그런
HTTP/1.1 201 Created
Location: http://example.com/archives/1234
Content-Type: application/json
을 얻을 것입니다, 당신은 http://example.com에 요청을 만들 수 :
GET /archives/1234
Accept: multipart/mixed
를 여기에서 원하는대로 단일 요청으로 실제 아카이브를 가져오고, 다중 파트 형식의 결과 만 제공합니다. 당신이 한 경우
(다중 /의 X-우편은 그 zip 파일입니다, 너무 일 것이다) :
GET /archives/1234
Accept: application/json
당신은 당신이 (그래서 당신은 아마도, 수 원래 보낸 JSON, 편집을 다시 얻고 업데이트 할 것 아카이브, 바이너리 이미지 전송 지원을 원하지 않는 경우).
PUT /archives/1234
Content-Type: application/json
{ "image1": "http://ww.o.com/1.gif",
"image2": "http://www.foo.be/2.gif",
"image3": "http://www.foo2.foo/4.gif" }
자원은/아카이브/1234, 그 이름의 :
는 단순히 업데이트를 다시 POST 것을 변경합니다.
JSON 버전과 실제 이진 보관 파일은이 경우 두 가지 표현이 있습니다.서비스는 수락 헤더에 지정된 콘텐츠 형식을 사용하여 두 서비스를 구별합니다. 그 헤더는 고객이 원하는 것을 말하고 있습니다.
당신이 아카이브를 완료하면, 단순히
DELETE /archives/1234
또는 서버를 가질 수 있습니다 삭제 좀 나중에 자원을 만료됩니다.
언급 한 것처럼 문제는 페이로드가 아니며 콘텐츠 유형입니다. 이상적으로, 컨텐트 유형은 가능한 한 데이터를 설명합니다. Multipart가 훨씬 적합합니다. 또한 이미지를 혼합 할 수 있습니다 (예 : PNG와 JPG 결합). 비용은 새 메타 데이터에 대한 최소 오버 헤드입니다. –