내 마음에 오는 것은 RESTful API가 URL 자체의 재귀를 반영하지 않도록하십시오. 생각해 보면 당신의 자원은 문서 일뿐입니다.
재귀 구조에 따라 문서를 실제로 저장 한 경우 고유 ID에 대한 맵핑을 작성하고 URL에서 ID를 사용하십시오.
/rest/documents/{id}
이제 다음과 같은 문서가 있다면 :
| DocumentName | DocumentPath | DocumentID |
--------------------------------------------
| ABC | / abc | 1 |
| asd | / abc / asd | 2 |
| asd | / asd | 3 |
| 부 | / abc / asd / boo | 4 |
| 이봐 | / abc / asd / hey | 5 |
요청은이 URL을 참조하여 /abc/asd
문서 를 작성합니다.
GET /rest/documents/2
따라서 이제 API 사용자에게 적은 노력으로 구조를 통과 할 수있는 수단을 제공해야합니다. 응답 페이로드 (문서)를 다음과 같은 추가 순회 정보를 포함하는 오브젝트로 랩핑하여 수행 할 수 있습니다.
{
data: { /* your document goes here */ },
parent: {"abc": 1 },
children: [ { "boo": 4 }, { "hey": 5} ]
}
사용자가 단일 레벨에서 너무 많은 문서를 작성하지 않을 것으로 예상되는 경우 하위 목록을 응답에 포함시킬 수 있습니다. 그렇지 않은 경우 사용자에게 하위 문서 ID를 검색하도록 제안 할 수 있습니다 (예 : querystring 매개 변수를 통한 결과 페이징 허용).
GET /rest/documents/2/children?page=2&size=50
마지막으로 querystring 매개 변수를 말하면 querystring 매개 변수를 통해 경로 정보를 직접 제공 할 수도 있습니다.
GET /rest/documents?path=somepath&page=1&size=42
언급 된 모든 접근 방식은 일반 GET /rest/documents
문서가 루트 문서 만 반환 할 것으로 예상합니다 .