예를 들어 클라이언트, 보고서 엔티티가 있습니다. 고객에게 많은 보고서가있을 수 있으며 단일 보고서 관리에 대한 끝 점이 다음과 같이 중첩되어야한다고 생각합니다.
/clients/{client_id}/reports/{report_id}
한 고객의 모든 보고서에 대해서는 다음과 같이 지적합니다.
/clients/{client_id}/reports
그러나 모든 클라이언트의 모든 보고서가 API를 일관되고 잘 설계되도록하기 위해 어떻게 엔드 포인트를 찾아야합니까?
내 접근 방식 :
- (구글 구글 API에서 보았습니다) 대신 "-"를 사용하고 "all"로 구문 분석하십시오.
/clients/-/reports
이것은 엔드 포인트 형식을 동일하게 유지하지만 약간 쓸모가없는 것처럼 보이며이 방법을 제안하는 rfc를 찾을 수 없습니다.
- 모든 보고서에 대해서만 별도의 엔드 포인트를 작성하십시오.
/reports
그러나 고객 보고서를 얻으려면 여전히 다음과 같습니다.
/clients/{client_id}/reports
- "클라이언트"를 부모가 아니라 필터 매개 변수로 만들기 위해 엔드 포인트를 리팩터링하십시오.
/reports?client={client_id}
-한 고객의 보고서
/reports
-모든 고객의 보고서
특정 클라이언트에 대한 보고서를 게시하기 위해 새 끝점을 추가하는 경우 URL에 매개 변수가있는 POST 요청이므로보기에 좋지 않을 수 있습니다.
아이디어에 대한 다른 제안이 있습니까?