나는이 문제에 대해 procced하는 방법을 결정할 수없는 문제점을 가지고 있습니다. 그리고 이것을 해결할 수있는 표준 방법이 있는지 또는 여러분에게이 문제에 대한 큰 의견이 있는지 알아야합니다.REST API, 관계가있는 POST 엔티티?
중요한 것은 학습 목적으로 매우 기본적인 API를 빌드하기 시작한 것입니다. API는 간단한 뮤직 스토어입니다. 상점에는 필요한 일부 앨범과 아티스트가 있습니다.
그래서 관계가 아티스트 < --- 1 ----- * ---> 앨범과 앨범이 존재하기 위해서는 앨범에 아티스트가 있어야합니다. 그러나 예술가는 앨범과 앨범을 요구하지 않습니다. 문제에 대한 지금
...이 때문에 관계내가 앨범 데이터 .. 전체 ARIST-data..not 단지를 게시해야합니다 .. 새 앨범을 만들려면 제 아티스트의 ID ..하지만 전체 아티스트 .. 당신이 나에게 묻는다면 그다지 효과적이지 않습니다.
그래서이 문제를 해결하는 두 가지 방법이 있습니다 ... 나는 전체 앨범 데이터/개체를 게시하고 개체에 대한 아티스트 데이터에 ID를 포함 할 수 있습니다. 예술가.
그래서 대신 포스팅 :
{
"Name":"AlbumName",
"Description":"Some description for the album",
"ReleaseYear": "1992",
"Artist" {
"Name":"Some artist",
"Id":"12345",
"Biography":"Lorem ipsum dolor sit amet"
}
}
내가 이런 짓을 했을까 :
{
"Name":"AlbumName",
"Description":"Some description for the album",
"ReleaseYear": "1992",
"Artist" {
"Id":"12345"
}
}
옵션 두 번째는 실제 경로/URL이 특정 먹으 렴하는 것입니다 ... 예를 들어 : /api/artist/{artistid}/album 그리고 앨범에 개체를 게시하면됩니다.
하지만 제가 말했던 것처럼 .. Im r eally 여기에 옳고 그른 것이 무엇인지 확실하지 않습니다 .. 또는 이것을 처리하는 표준 방법이 있습니까?
미리 감사드립니다.
여기에 주제가 다를 수 있습니다.하지만 ASP.net 웹 API에서 어떻게 수행 할 것입니까? .. 각 경로에 대한 새 경로를 정의하면 코드 줄 수가 많아집니다. – Inx
many-to-many 리소스에 대해? 경로에 두 개의 고유 한 ID가 포함되어야합니까? 아니면 두 가지 중 하나가 본문 페이로드에 있어야합니까? – Stephane
@StephaneEybert 어느 쪽이든 작동합니다. 나는 후자를 선호한다. 환경에 따라 http://tools.ietf.org/id/draft-snell-link-method-01.html도 흥미로울 수 있습니다. –