어쩌면 분할처럼 보이도록 하위 자원으로 분할 할 필요가있는 경우 나 결정하는 데 도움 수있는 적절한 추론을 할 것입니다 무엇 주 자원이 여러 배열 및 기타 관련 엔티티가있는 복합 엔티티 인 경우 여러 하위 자원으로의 주요 자원을 이해할 수 있습니다.
그러나 성능 문제가 염려되는 경우 premature optimization is the root of all evil을 기억하십시오. 성능 문제가 발생할 때까지 최적화하지 말아야하며 성능 문제가 리소스의 큰 표현을 전송할 때 발생한다는 것을 입증해야합니다. 다음과 같은 자동차의 엔진 전체를 교체 할 때 /cars/{id}/engine
같은 하위 리소스가 유용 할 수지지 질문에 언급 된 상황
:
PUT /cars/1/engine HTTP/1.1
Host: example.org
Content-Type: application/json
{
"horse_power" : 110,
"type" : "eletric"
}
HTTP/1.1 204 No Content
/cars/1
요청 , 엔진을 포함하여 자동차의 전체 표현이 반환됩니다.
GET /cars/1 HTTP/1.1
Host: example.org
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{
"id" : 1,
"brand" : "something",
"engine" : {
"horse_power" : 110,
"type" : "eletric"
}
}
리소스의 일부 표현을 반환하려면이 answer에 언급 된 방법을 고려하십시오.
/cars/1/engine
를 요청, 엔진의 표현은 반환되는 :
GET /cars/1/engine HTTP/1.1
Host: example.org
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{
"horse_power" : 110,
"type" : "eletric"
}
하지만이 또한 PUT의 /cars/1/HTTP/1.1 호스트로 가능한 것 : example.org 내용 - 유형 : 응용 프로그램/JSON { "horse_power": 110, "유형": "ELETRIC" } 다른 리소스 다음 청소기 코드와 적은 마크 업을 분할 할 때 – mko
은 좀 더 휴식 관련 혜택을 찾고 있었다. – mko
@mko'PUT/cars/1'을 수행 할 때, 대상 자원 (이 경우, ID가 '1'인 차량)을 요청 페이로드로 전송 된 표현으로 대체해야합니다. –