問題タブ [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.
rest - AngularJS を使用した HATEOAS クライアント
HATEOAS準拠のRestfulクライアントを簡単に作成するために、Angularに隠されている機能やサードパーティのライブラリによって公開されている機能があるかどうか疑問に思っていました.
バックエンド側では、Spring Data/REST を使用して HATEOAS JSON API を生成しています。ただし、それを消費することはまったく別の話です。
たとえば、次の 3 つのエンティティがあります。
- 会社
{name, address}
- 従業員
{firstName, lastName, employer[Company]}
- アクティビティ
{rate, day, employee[Employee], client[Company]}
アクティビティ (モデルの最も複雑なエンティティ) を要求すると、次のようなものが生成されます。
私の API は REST (リンクで識別されるリソース) の観点から話します。たとえば、Activity には Employee があります。私が本当に使いたいのは :{rate: 456, day: 1366754400000, employee: {firstName:"xxx", lastName:"xxx" ...}}
です。
ただし、最初の出力でわかるように、アクティビティには従業員へのリンクのみが含まれており、従業員のデータは含まれていません。これらのリンクを解決し、代わりに結果のデータを埋め込むために、Angular またはサードパーティのライブラリに何かありますか?
これについて何か意見はありますか?
前もって感謝します!
.net - .netで残りの制約HATEOAS原則に従う方法
私は残りのアーキテクチャで1つの例を作成しようとしました. 私は3つの制約に従いますが、4番目のハイパーメディア(hateoas)をたどることはできません.json形式で返す.jsonはリンクを正しくサポートしていませんでした.
だから、hateoasをフォローするために、jsonにリンクを追加したいのですか?.そのために、リンクを追加するためのカスタマイズコードを実行したいと思います。リンクを作成するツールはありますか?いくつかのプレゼンテーションを見つけましたが、java..so では、誰でも .net の json で hatoas に従うリンクまたは例を提供できます。事前の感謝
rest - リソース中心のスタイルでモデル化された RPC スタイルの例がどのように見えるか
私は数日間RESTについてウェブを読んでいて、HATEOASの概念に苦労しています。
データをリソースとしてモデル化する方法と、リソース間のリンク (状態遷移?) を正しく理解していないため、苦労していると思います。私の問題は、私の経験はすべて OO と RPC であり、リソース中心の考え方に慣れていないことだと思います。
理解を得る唯一の方法は、私の世界から例を挙げ、それがリソース/リンク中心の方法でモデル化されているように見えると思うものを言い、それを放り投げて炎上させることです。書き込みが完了したら、少なくとも自分が理解していないことをよりよく理解する必要があります.
私の(簡略化された)例は次のとおりです。
私は配管工などの請負業者です。私にはいくつかの仕事が割り当てられています。対象の日付範囲などの単純なパラメータを指定して、自分の仕事を検索できます。私は自分に割り当てられた仕事を始めることができます。ジョブを開始するとき、必要に応じて開始時刻を指定するか、今開始する場合は空白のままにすることができます。
これを RPC 方式で実装する場合、呼び出し元に 2 つのメソッドを公開する可能性があります。
ご覧のとおり、オブジェクトと操作を考えています。
リソースとリンクを考えているとしたら、リソースは何でしょうか?
私の推測は次のとおりです。
- 請負業者: ~/contractor/plumbersareus ?
- 求人検索: ~/contractor/plumbersareus/searches/searchidentifier ?
- ジョブ: ~/job/12345 ?
- 出席: ~/job/12345/attendances/attendanceidentifier ?
上記のいずれかが正しいと仮定すると (そして、私はそれが正しいとは思えません)、「searchidentifier」と「attendanceidentifier」は何にすべきでしょうか? 前者は私の RPC ワールドではアイデンティティを持たないでしょう。それは単なるパラメータになります。後者は DateTime によって識別されます。
リンクは何ですか (自分自身へのリンクは無視します)?
- 請負業者: ~/contractor/plumbersareus/searches ?
- 求人検索: ~/job/12345、~/job/12346 など ?
- ジョブ: ~/job/12345/attendances ?
- 出席: ?
これが繰り返しの質問である場合は、申し訳ありませんが、閉じてください。(繰り返しは見つかりませんでしたが、間違った用語で検索していた可能性があります。)
rest - HATEOAS - 状態を変更するリンク関係をモデル化する方法
各状態がハイパーリンクされるべきであるという HATEOAS の原則に従って、リソースの状態を変更するリンクをモデル化する最良の方法は何ですか?
注文の古典的な例を見てみましょう:
「/cancel」の部分にはまったく満足していません。次の内容で「 PUT」リクエストを送信できれば、もっと気分が良くなるでしょう。
しかし、リンクセクションの「href」属性でそれを表現するにはどうすればよいですか? たとえば、注文のキャンセルは常に可能であるとは限らないため (「完了」状態)、そこで利用可能なアクションを表現したいと思います。
1 つの可能性は、'/orders/12?action=cancel' のような URL を使用することです。これは、RPC アプローチのように感じられ、何かが欠けているように感じます。
おそらく最も見栄えの良い別の可能性は、次のようなリンクを持つことです。
この解決策は少し冗長に感じるかもしれません。
それを優雅に処理する方法はありますか?たぶん、誰かがすでに同様の「問題」を解決していますか?
c# - Restful API (HATEOAS) を使用して深くネストされたリソースを送信する方法
連絡先の詳細リソースを含むアプリケーション リソースがあり、連絡先の詳細にはアドレス リソースが含まれているとします。
例えば。
アプリケーションへの POST を実行するとき、ルート アプリケーションを作成しています。アプリケーション連絡先などのすべてのサブリソースについて、POST を実行して連絡先 1 などを作成します...
私の質問は、アプリケーション = 処理のためにどこかに送信することですが、すべてが入力される前に送信したくありません。つまり、すべての子リソースです。
ジョシュ
rest - RESTful の世界では、次の許可されたアクションがワークフロー ベースのアプリケーションで UI に返される方法
ユーザーアクションに基づいて、特定のプロセスがある状態から別の状態に移動するワークフローベースのアプリケーションがあります。現在、私たちの要件は、UI に現在の状態を表示させ、ユーザーが次のアクションステップを実行できるようにすることです。 UI は実行できる次のアクション、または UI は現在のアクションに基づいて決定する必要がありますか? このアプリケーションは、RESTful Web サービスを使用して設計されています。