2

親オブジェクトとネストされたオブジェクトがあります。ネストされたリストを取得できますが、GET /parent/{parentId}/nestedPOST/PUT を成功させることはできません。POST の結果で HTTP 204 を取得し、親にはネストされたオブジェクトの空のリストがあります。

ログを見ると、Hibernate は DB に何も挿入していません。デバッグ中に、デシリアライゼーション用の Jackson Object Mapper が JavaTypeorg.springframework.hateoas.Resources<java.lang.Object>として " " を取得していることがわかります。

これが私のPOSTの実際の例です: curl 'http://localhost:8000/api/users/402880e554b8f7960154b8f7adbc0000/orders/' -i -X POST -H 'Authorization: Basic OLOLO==' -H 'Accept: application/json' -H 'deviceCurrencyCode: USD' -H 'Content-Type: application/json; charset=UTF-8' -d '{"orderPrice": 0,"tax": 0,"shippingCost": 0,"credits": 0,"addresses": [{"firstName": "Figli","lastName": "Migli","zipCode": "5555","city": "Riga","country": "Tlmltr","phone": "7777","address": "Adddr"}],"status": "status"}'

できることはわかっていますPOST /nested '{"parent":"/link/to/parent"}'。しかし、ネストされたオブジェクトを親で取得する方法である場合、なぜこの方法でそれらを POST/PUT/PATCH できないのでしょうか? 私はチェックしました、それはRESTfullですか、そうです。

4

1 に答える 1

5

Spring Data Rest のドキュメントには、このリソースで何が可能かを説明するセクション「関連付けリソース」があります。また、新しい子を作成して関連付けることはできません。

これがなぜなのかはわかりません。

この動作を取得する唯一の方法 (私が知っている) は、それを行うカスタム コントローラーを実装することです。(@RequestMappingカスタムコントローラーのクラスレベルでアノテーションを使用して、必要以上のスプリングデータレスト機能をオーバーライドしないようにしてください)

于 2016-05-19T12:43:54.170 に答える