엄격한 부모/자식 계층 관계가있는 두 개의 리소스가 있는데, 여기에는 자식이 부모없이 존재하지 않으며 자식 ID는 부모 리소스 내에서 단조롭게 증가하는 정수 여야합니다 전역 자원 세트 내에서 고유하지는 않습니다. 데이터베이스 내에서복합 리소스 ID 대 URL ID
Foo: ABC
|- Bar: 1
|- Bar: 2
|- Bar: 3
Foo: QWE
|- Bar: 1
|- Bar: 2
, 우리는 간단한 화합물 자연 키와 테이블이 저장 : 푸와 푸 부모 인 바, 그들에게 전화하자 것은
Foo | Bar | Value
===================
ABC | 1 | shizzle
ABC | 2 | bizzle
ABC | 3 | fizzle
QWE | 1 | lorem
QWE | 2 | ipsum
표준은 유형해야합니다/ID 조합은 포함 된 리소스가 올바르게 링크 될 수 있도록 API 내에서 고유해야합니다. 따라서 여기에서 고유 한 바 ID를 만들려면 Foo_Bar, 즉 ABC_1 및 QWE_1과 같은 복합 키에 가입해야합니다. 추악하고 주요 구성 및 결합 숯에 대한 지식을 필요로하는 클라이언트 주변의 일부 문제를 제기하지만 충분히 공정하고 클라이언트가 대신 사용할 자연 키를 데이터 또는 메타로 추가 할 수 있습니다.
제 질문은 하위 리소스에 대한 URL과 함께 제공됩니다.
https://example.com/api/v1/foos/ABC/bars/ABC_1
는하지만 추한 언급하지 않기는 'ABC'를 반복하지 않고 중복 것, 그리고 우리의 주요 웹 사이트 URL과 일치 : 같은 문서 ID와 내부 일관성을 위해 URL을 보일 수 있습니다. 나는 내가 원하는 것을 할 자유라고 생각
https://example.com/api/v1/foos/ABC/bars/1
,하지만 난 그들이이라는 가정을 할 경우이 밖에 라이브러리의 일부 문제가 발생할 수 있습니다 의심 : 나는 많이 사용 원합니다 똑같다? 일반적으로 URL은 내부 리소스 유형/ID와 논리적 관계가 있어야합니까?
관련하여 리소스 ID는 '.'을 사용할 수 있습니까? '_'대신 복합 키에 가입 하시겠습니까? 이렇게하면 관계 경로와 일치하게되므로 'foos.bars'= 'ABC.1'입니다. 표준에서는 '.' 회원 이름에서 ID 이름에 그러한 제약이없는 것 같습니다.
건배!
존.