タグ付けされた質問 「hateoas」

4
REST API-DTOかどうか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 この質問を改善する 現在プロジェクトのREST-APIを作成しており、ベストプラクティスに関する記事を読んでいます。多くの人はDTOに反対しているようで、単にドメインモデルを公開しているようですが、他の人はDTO(またはユーザーモデルなど、呼びたいもの)は悪い習慣だと考えているようです。個人的には、この記事は非常に理にかなっていると思いました。 ただし、すべての追加のマッピングコード、DTOの対応物と100%一致する可能性のあるドメインモデルなど、DTOの欠点も理解しています。 私たちのAPIは、他のクライアントがデータを消費できるように作成されていますが、適切に実行した場合は、可能であれば独自のWeb GUIにも使用したいと思います。 問題は、すべてのドメインデータを他のクライアントユーザーに公開したくない場合があることです。データの多くは、私たち自身のWebアプリケーションでのみ意味があります。また、すべてのシナリオでオブジェクトに関するすべてのデータ、特に他のオブジェクトとの関係などを公開したくない場合もあります。たとえば、特定のオブジェクトのリストを公開する場合、必ずしもオブジェクト階層全体を公開する必要はありません。そのため、オブジェクトの子は公開されませんが、リンク(ハテオア)を通じて発見できます。 この問題を解決するにはどうすればよいですか?ドメインモデルでジャクソンミックスインを使用して、さまざまなシナリオで公開されるデータを制御することを考えていました。それとも、DTOをずっと使用するべきでしょうか?欠点や論争があるとしても?
154 java  spring  rest  dto  hateoas 

5
HATEOAS(REST-architecture)の実際の例[終了]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 誰もが気付いているかもしれませんが、実際には多くの偽/基本的なREST-APIがあります(HTTP-APIを実装し、アプリケーションの状態としてのハイパーテキスト要件に従わずにRESTと呼びます)。最初にRESTパラダイムを指定した男、ロイT.フィールディングの有名な怒りに)。 真のハイパーテキスト駆動型REST実装の実用的な例と、状態遷移に関連するアプリケーション固有のメディアタイプ定義を見つけることができませんでした。 そのような実装の公にアクセス可能な例はありますか?
140 api  rest  hateoas 

5
REST HATEOAS(成熟度レベル3)はどの程度有用/重要ですか?
私は、REST APIがHATEOASに準拠し、すべてのリチャードソンの成熟度レベル(http://martinfowler.com/articles/richardsonMaturityModel.html)を実装する必要があると考える一部の上級チームメンバーが信じているプロジェクトに参加しています! AFAIKのほとんどのREST実装はHATEOASに準拠していないため、より多くの人がそれを行わないのには十分な理由があるはずです。追加された複雑さ、フレームワークの欠如(サーバー側とクライアント側)、パフォーマンスの懸念などの理由を考えることができます... どう思いますか?現実世界のプロジェクトでHATEOASの経験はありますか?
110 rest  hateoas 

9
そのREST APIは本当にRPCですか?ロイ・フィールディングはそう考えるようです
RESTについて私が知っていると思っていたものの多くは明らかに間違っている-そして私は一人ではない。この質問には長い導入がありますが、情報が少しばらばらなので、必要なようです。このトピックにすでに精通している場合は、実際の質問が最後に来ます。 Roy FieldingのREST APIの最初の段落はハイパーテキスト駆動である必要があることから、彼の仕事が広く誤解されていると彼が信じていることは明らかです。 HTTPベースのインターフェースをREST APIと呼ぶ人々の数に不満を感じています。今日の例はSocialSite REST APIです。それがRPCです。それはRPCを叫びます。ディスプレイには非常に多くのカップリングがあるため、Xレーティングを指定する必要があります。 フィールディングでは、REST APIのいくつかの属性をリストします。それらのいくつかは、SOや他のフォーラムでの一般的な慣行と一般的なアドバイスの両方に反対するようです。例えば: REST APIは、最初のURI(ブックマーク)と、対象とするオーディエンスに適した標準化されたメディアタイプのセット(APIを使用する可能性のあるすべてのクライアントによって理解されることが期待される)以外の事前知識なしで入力する必要があります。... REST APIは、固定リソース名または階層(クライアントとサーバーの明らかな結合)を定義してはなりません。... REST APIは、リソースの表現とアプリケーションの状態の駆動に使用されるメディアタイプの定義、または既存の標準メディアタイプの拡張リレーション名やハイパーテキスト対応マークアップの定義に、ほとんどすべての記述的努力を費やすべきです。... 「ハイパーテキスト」のアイデアは中心的な役割を果たします。URI構造やHTTP動詞の意味よりもはるかに重要です。「ハイパーテキスト」は、コメントの1つで定義されています。 私が[フィールディング]とハイパーテキストを言うとき、それは情報とコントロールの同時の提示を意味し、情報はユーザー(またはオートマトン)が選択肢を取得してアクションを選択するためのアフォーダンスになるようにします。ハイパーメディアは、メディアストリーム内に一時的なアンカーを含めるというテキストの意味を拡張したものです。ほとんどの研究者は区別を落としました。 ブラウザでハイパーテキストをHTMLにする必要はありません。マシンは、データ形式と関係タイプを理解すると、リンクをたどることができます。 私はこの時点で推測していますが、上記の最初の2つのポイントは、次のようなFooリソースのAPIドキュメントは、クライアントとサーバー間の密結合につながり、RESTfulシステムには場所がないことを示唆しているようです。 GET /foos/{id} # read a Foo POST /foos/{id} # create a Foo PUT /foos/{id} # update a Foo 代わりに、エージェントは、/ foosに対してGETリクエストを発行するなどして、すべてのFoosのURIを検出するように強制する必要があります。(これらのURIは、上記のパターンに従うことが判明する可能性がありますが、それはポイントの横にあります。)応答は、各アイテムへのアクセス方法とそれで実行できることを伝えることができるメディアタイプを使用し、上記の3番目のポイントをもたらします。 。このため、APIドキュメントでは、応答に含まれるハイパーテキストを解釈する方法の説明に重点を置く必要があります。 さらに、FooリソースへのURIが要求されるたびに、応答には、エージェントがURIを介して関連リソースや親リソースにアクセスしたり、作成後にアクションを実行したりするなどの方法を発見するために必要なすべての情報が含まれます/リソースの削除。 システム全体の鍵は、応答がメディアタイプに含まれるハイパーテキストで構成され、それ自体がエージェントに処理のオプションを伝えることです。これは、ブラウザが人間に対して機能する方法と同じです。 しかし、これは現時点での私の推測です。 フィールディングはフォローアップを投稿し、彼の議論はあまりに抽象的で、例が不足しており、専門用語が豊富であるという批判に応えました。 他のものは、私が書いたものをより直接的に、または今日のいくつかの実際的な懸念に適用できる方法で解読しようとします。次のトピックに取り組んでいる、会議の準備をしている、別の標準を書いている、遠く離れた場所に旅行している、または給料を稼いだと感じさせるちょっとしたことをしているので忙しくないので、おそらくそうしません。 それで、実用的な考え方を持つRESTエキスパートへの2つの簡単な質問:Fieldingが言っていることをどのように解釈し、REST APIを文書化/実装するときにそれをどのように実践しますか? 編集:この質問は、話している内容の名前がないと、何かを学ぶのがどれほど難しいかを示す例です。この場合の名前は、「アプリケーション状態のエンジンとしてのハイパーメディア」(HATEOAS)です。
99 rest  hateoas 

9
HATEOAS:絶対URLまたは相対URL?
HATEOASを使用してRESTfulWebサービスを設計する場合、リンクを完全なURL( " http:// server:port / application / customers / 1234 ")として表示することと、パスだけ( "/ application /顧客/ 1234 ")?
84 rest  hateoas 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.