問題タブ [hypermedia]
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.
hateoas - 同じリソースにつながる異なるリンクを使用しても問題ありませんか?
オプション1:
常に「絶対」リンクを返します (ネストなし) 。このようにして、特定のリソースに対して常に同じリンクをクライアントに提供します。
必要ですか?(サーバー側で追加の作業が必要であることを知っています)
オプション 2:
また、クライアント (ここでは従業員) に返されるリソースの下にネストされた「相対」リンクを返すこともあります。しかし、クライアントは、同じリソースに対応する2 つの異なるリンク (" http://api.com/companies/1 " と " http://api.com/employees/4/company ") を受け取った可能性があります。
他の選択肢よりも優れた選択肢はありますか?その理由は?
spring-data-rest - SDR リポジトリから JSON ハイパースキーマを公開する方法は?
私は小さな SDR POC プロジェクトに取り組んでいます。このプロジェクトでは、ハイパーメディアを理解し、ビューの一部を動的に作成するクライアントを開発しようとしているため、JSON スキーマを使用することにしましたが、目的にとってより意味があるためです。 JSON スキーマを使用してエンティティのすべてのハイパーメディア メタデータを見つけるのに苦労しています。
これらは私が使用しているエンティティです
Accept ヘッダー値を「application/schema+json」として使用して、/profile/Books で GET を実行すると、次のようになります。
私はこの出力を受け取ります:
この JSON スキーマ出力には、Book エンティティのすべての CRUD 操作へのリンクも、そのプロパティを定義するためのページやメタデータなどの関連エンティティへのリンクもありません。
/profile によって提供されるデフォルトの ALPS 出力 ( https://datatracker.ietf.org/doc/html/draft-amundsen-richardson-foster-alps-01 ) は十分に意味がありません。エンティティでも、特定のタイプでもありません。
/booksの HAL 出力 ( https://datatracker.ietf.org/doc/html/draft-kelly-json-hal-07 ) には、すべての書籍インスタンスのリンクと他のエンティティとの相互作用リンクが記述されていますが、メタデータについては記述されていません.
SDR のエンティティの JSON スキーマ メタデータを出力する正しい方法は何ですか? SDR リソースからJSON ハイパースキーマ ( https://datatracker.ietf.org/doc/html/draft-luff-json-hyper-schema-00 )を生成できる方法はありますか?
java - Spring HATEOAS を使用して HAL にネストされた埋め込み
Spring HATEOAS API を使用して HAL にネストされた _embedded をプログラムする方法の例を探しています。ベストプラクティスは何ですか?
ここに私が達成したいことの例があります:
rest - ハイパーメディア対応 API で以前の状態への Ref を持つ
ハイパーメディア対応の REST API で、ブラウザー以外のクライアントがリソース Model-A にアクセスする必要があるとします。通常、エントリ ポイントがあり、次にモデルを取得するための ref、次に特定のモデルにアクセスするための別の ref があります。
しかし、受け取ったモデルを確認した後、戻って Model-B などの別のモデルを確認する必要がある場合はどうでしょうか? その場合、前の状態への参照があったほうがよいのではないでしょうか?
例として、おもちゃ屋の API を取り上げます。最初に、すべてのおもちゃを一覧表示するためのルート リンクを取得します (条件を指定した検索の場合もあります)。応答により、Toy 表現のセットとそれらにアクセスするためのリンクを取得します。
私が選択した場合、たとえば電車を選択してから別のものを選択したい場合は、最初からやり直す必要があります。
api - Hypermedia API - ピックリスト データの提示
HAL 仕様に準拠したハイパーメディア API を作成しています
ユーザーが支払いを送信するとき、使用しているカードの種類 (Visa、Master Card など) を指定する必要があります。
したがって、送信される特定のフィールドには、使用できる特定の値のリストがあります。
その選択リストをユーザーに提示するにはどうすればよいですか?
埋め込みデータとして?
一般に、フィールドを特定のデータ セットに関連付ける方法はありますか?
HAL の仕様は非常に小さく、この問題を具体的にカバーしていないことを認識しています。しかし、一般的なハイパーメディア API では、人々は通常、このデータをどのように提示するのでしょうか?
それとも、CURIE リンクのフィールドについて簡単に説明する必要がありますか? ありがとう
api - この API 構造は HATEOAS と互換性がありますか?
以下の API リンクの構造が HATEOAS に対応しているかどうか疑問に思っています。
特に /create endpoint についてはよくわかりません。ユーザーはそこからグループを作成できるため、エントリー レベルである必要がありますか、それとも /groups に配置しても問題ありませんか?
残りについてどう思いますか?また、HAL 互換である必要があります。
java - Springfox を使用した Swagger UI のハイパーメディア リンク
spring-hateoas ライブラリを使用してハイパーメディアを実装する RESTful API を構築しています。私のエンドポイントの応答は application/hal+json です (私の DTO は ResourceSupport を拡張します)。
私は Swagger を使用してエンドポイントを文書化し、Springfox を使用して swagger-ui を自動生成しています。
問題は、生成されたドキュメントが正しくないことです。
POST エンドポイントのリクエストとして、UI は DTO の _links セクションをペイロードの一部として設定しているため、POST エンドポイントのパラメーターとして送信する必要があるのは次のとおりです。
私の質問は次のとおりです。springfox に application/hal+json を Parameter コンテンツ タイプとして認識させる方法はありますか? ない場合、リクエストから _links セクションを隠す方法はありますか?
rest - WebApi.Hal を使用して生成されたメディア タイプでリンクが空です
プロジェクトからメディア タイプの応答を生成するためにWebApi.Halを使用しています。これは、 WebApi.Hal 2.6.0で概説されているように、次のナゲット パッケージ マネージャー コマンドを使用してプロジェクトにインストールされます。application/hal+json
ASP.Net Web API
インストール パッケージ WebApi.Hal
postman を使用してリクエストを作成し、次のレスポンスを受け取りました。
リンクは空になっています。リンクを取得するには?
Global.asax
コントローラーとその他のクラス
参考文献