2016-07-18 2 views
0

주문 및 지불 거래를 나타내는 RESTful API를 설계하고 있습니다. 내 (단순화 된) 모델은 다음과 같습니다.REST API에서 관련 데이터를 어떻게 연결해야합니까?

---------  --------------- 
| order |----<| transaction | 
---------  --------------- 

즉 주문에 많은 거래가 발생할 수 있습니다. 나는 자원을 얻으려면 이러한 엔드 포인트가있는 경우 :

두 번째 호출은 다음 :)

/transactions/{id} 

를 통해 액세스 할 수있는 트랜잭션 객체 목록 (확장하거나 ID를 반환

/orders/{id} 
/orders/{id}/transactions 

어떻게해야 거래를 설명하기 위해 주문 자원을 업데이트 하시겠습니까?

트랜잭션 객체 데이터의 목록을 /orders/{id}/transactions으로 게시해야하며 해당 데이터가 생성되어 주문 리소스에 연결됩니까?

각 메시지를 /transactions 각 게시물에 넣고 PUT (POST?)를 /orders/{id}/transactions 트랜잭션 ID 목록에 게시해야합니까?

... 아니면 다른가요?

이미 트랜잭션 리소스가 있고 링크하려는 경우 어떻게해야합니까?

답변

3

당신은 다음과 같은 순서에 대한 트랜잭션을 생성 할 POST을 사용할 수

POST /orders/{id}/transactions HTTP/1.1 
Host: example.org 
Content-Type: application/json 

{ 
    ... transaction representation ... 
} 

당신이 거래 자원을 고려할 수 있습니다 주문에 기존의 트랜잭션을 링크는 하위 자원이 순서라는 포함.

PATCH /transactions/{id} HTTP/1.1 
Host: example.org 
Content-Type: application/json-patch+json 

[ 
    { "op": "replace", "path": "/order", "value": 100 } 
] 
: 당신은 부분적으로 트랜잭션 리소스를 업데이트 할 PATCHJSON Patch을 사용할 수 있습니다, 또는

PUT /transactions/{id}/order HTTP/1.1 
Host: example.org 
Content-Type: application/json 

{ 
    "order": 100 
} 

: 트랜잭션의 순서, 당신이 요청 페이로드 순서 식별자를 전송, PUT을 사용을 교체하려면

관련 문제