問題タブ [spring-hateoas]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - Spring DataRESTURIとエンティティID
Spring Data REST(特にSpring HATEOAS)はRESTful ID(つまり、URI)をエンティティIDから切り離しているため、新しいオブジェクトを保存するときにそれらをリンクして戻すのに問題があります。https://github.com/SpringSource/spring-data-rest/issues/13で、このデカップリングに関する興味深い議論を参照してください。
クライアントアプリがTicket
、関連付けられたTicketCategory
リソースを使用して新しいリソースを作成したいとします。Ticket
リモートのSpringDataRESTエンドポイントに対して投稿したい。はTicket
新しいので、まだIDを持っていません。にはTicketCategory
IDがありますが、クライアントでは、上記の説明によるとURIです。したがって、を保存すると、SpringDataRESTはSpringDataJPAにTicket
渡しますTicket
が、これは気に入らないものです。SpringData JPAは、TicketCategory
エンティティIDがない場合は一時的であると見なします。
更新:のドキュメント
https://github.com/SpringSource/spring-data-rest/wiki/JPA-Repository-REST-Exporter
「関係の更新」というセクションがあり、HTTPPOSTを使用してエンティティ間の関係を確立するスキームについて説明しています。それが現在利用可能な唯一のアプローチであるかどうかはわかりませんが、このアプローチでは、最初の投稿で関連付けをnullのままにして、次の投稿で更新する必要があるようです。@NotNull
上記の場合、チケットにはカテゴリフィールドが必須()であるため、これは望ましくありません。
java - Spring HATEOAS と Spring Data Rest の比較
質問は、Spring HATEOAS と Spring Data Rest の違いは何ですか?
どちらも同じことができると思います.Spring Data Rest(Spring Dataの一部として)はもう少し生きているようです.
https://github.com/spring-projects/spring-hateoas https://github.com/spring-projects/spring-data-rest
どちらか一方をいつ使用しますか?
java - リンクに HateOAS の認証トークンを含める必要がありますか?
Spring MVC と Spring HateOAS を使用して、安らかでステートレスな JSON API を作成しています。
すべて正常に動作します。しかし、私は「概念」の問題を抱えています。私の API は、すべてのリクエストで認証トークンを使用します。たとえば、ログイン API を使用して認証トークンを取得し、my API を呼び出すときは、次のように使用する必要があります。
API は常に JSON に応答し、リンクは Spring HateOAS を介して生成されます。例えば :
問題は、生成された URL に認証トークンを追加する必要があるかどうかです。(そうなりますhttp://some_host/api/foo/bar/1234656?token=abcd
)
そのためのアドバイスや慣習は見つかりません。
rest - REST Spring HATEOAS コントローラーのリソース アセンブラーの定義
Spring REST コントローラーが提供する JSON リソースに HATEOAS リンクを追加しようとしています。
https://github.com/spring-projects/spring-hateoasで説明されているように、リソース アセンブラーを使用する必要があるようです。
この例では、Person クラスと PersonResource クラスが表示されます。
PersonResource クラスが次のように定義されていることを理解しています。
Person クラスとは何ですか? それはデータドメインクラスですか?
私の場合、REST ドメイン クラスである Admin クラスを定義し、それをリソース サポートを持つものとして指定しました。
私の REST コントローラーは、REST ドメイン クラスであるため、この Admin クラスのみを認識します。データドメインクラスを認識していませんし、認識すべきではありません。
そこで、ここでリソース アセンブラ サポートをどのように使用するのだろうか。
ここに追加のデータ ドメイン管理者クラスが必要な理由がわかりません。
敬具、
ここでマイクの答えに従うと、私のコントローラーは次のようになります。
以前は、リソース アセンブラを使用する代わりに、次のことを行っていました。
しかし、URL にリソース ID が表示されませんでした。
rest - オプションの requestparams を使用したメソッドへの HATEOAS リンク
次のシグネチャを持つメソッドにリンクしたい:
今、私はリンクを次のようにしたいと考えています:
以下に示すようにmethodOn
、Spring HATEOAS から使用してみました。ControllerLinkBuilder
?foo
しかし、最後に a が追加されているため、目的のリンクにはつながりません。上記の目的を達成するにはどうすればよいですか?
spring - ResourceSupport を拡張しない Spring-HATEOAS
REST API を構築しています。ResourceSupport を拡張できない Bean で構成されるドメイン モデルがあります。Spring-HATEOAS を使用してそれらをリソースとして公開する最良の方法はどれですか?
それが不可能な場合、Bean によって生成された JSON にリンクを含める最良の方法はどれですか?