問題タブ [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.

0 投票する
1 に答える
6400 参照

rest - RESTful API へのインクルード / 埋め込みとリンク

したがって、RESTful API の一般的なパターンは、関連するオブジェクトを取得するために使用できるリンクが埋め込まれた単一のオブジェクトを返すことです。しかし、便宜上、オブジェクト グラフのチャンク全体を一度に引き戻したい場合があります。

たとえば、customersorders、およびreturnsを持つ店舗アプリケーションがあるとします。顧客 ID 12345 の個人情報、すべての注文、およびすべての返品を一緒に表示したいと考えています (おそらく、常に注文を返品し、顧客の個人情報を返品するとは限りません)。

これを行う純粋な RESTful な方法は、次のようなものです。

  1. GET /
    • 顧客を照会するものを含む、リンク テンプレートのリストを返します
  2. GET /customers/12345( のリンク テンプレートに基づく/)
    • お客様の個人情報を返します
    • この顧客の注文と返品を取得するリンクを返します
  3. GET /orders?customerId=12345/customers/12345回答より)
    • 顧客 12345 の注文を取得します
  4. GET /returns?customerId=12345/customers/12345回答より)
    • 顧客 12345 の返品を取得します

customersしかし、 URI を取得したら、これをすべて 1 つのクエリで取得できると便利です。複数のリクエストを作成する代わりに、一部またはすべてのリンクをトランスクルージョンしたい、この種の便利なクエリのベスト プラクティスはありますか? 私は次のようなことを考えています:

しかし、人々がこれを行っている方法がある場合、私は単に何かをでっち上げたくはありません。

(FWIW、私はストアを構築していないので、これらがモデルに適したオブジェクトであるかどうか、または実際の製品にどのようにドリルダウンするかなどについて、口論しないでください。)


追加の更新: HALでは、これらは「埋め込みリソース」と呼ばれるように見えますが、示されている例では、埋め込むリソースを選択する方法がないようです。クエリ パラメータとして使用して、上記のような内容を示唆するブログ投稿を見つけました。embed

これは標準的または準標準的な慣行ですか、それとも 1 人のブロガーがでっち上げたものですか?

0 投票する
2 に答える
236 参照

html - Using Hypermedia Constraint API to drive UI

I want to use a REST API with hypermedia constraint to drive my UI. That is, depending on "possible next states" for the resources I fetch, I want to adapt my UI for this. I'm quite new to UI dev on the web so I wonder if there is any special considerations I need to care about here?

Lets say I have a resource that looks like this:

Would the above links approach be valid within the context of HATEOAS ? In a perfect world I guess one should just know about HTTP verbs for actions on the resource but if I want to let the UI know about what can be done to the resource, how do I do this in an idiomatic way?

What I mean is, the same kind of resource can have different "next possible state" depending on current status. And the UI needs to know about this. Should the UI examine what links are available on the resource or how do I do this?

0 投票する
1 に答える
808 参照

javascript - AngularJS の REST リソースへのリンク (関係)

ユーザーオブジェクトを返すREST APIがあり、その役割は別のオブジェクトへのリンクを介して指定されます。JSONlocalhost/project/api/users/27/オブジェクトは次のとおりです。

私がやろうとしているのは、コントローラーで役割を取得することです。私のユーザーサービスは次のようになります。

そして、(そのリソースコードブロックに)追加しようとしました:

これは、ngRepeat で呼び出されたときにブラウザをフリーズします。だから私は試しました

これは機能します。それから私は試しました

それrolesは未定義です。transformResponseまた、ユーザー サービスGETアクションにparamを追加しようとしましたが、その関数は呼び出されませんでした。

2 番目のオプションは問題なく機能しますが、ユーザー ID をハードコーディングする必要があります。適切な解決策は、どうにかしてユーザー ID を取得することです (試してみましthis.idたが、うまくいきませんでした)。

完璧な解決策は、指定された からリソースを作成することですが、プロトタイプでhrefはアクセスできないためroles、方法がわかりません。

アドバイスをありがとう。

0 投票する
1 に答える
447 参照

flask - フラスコレストレスを使用したハイパーメディアの実装

フラスコとフラスコの落ち着きのない拡張機能を使用して実装された REST API が既にあります。ナビゲーションを簡単にするために、ハイパーメディア スタイルのリンクを実装したいと考えました。リンクを手動で挿入するためのポストプロセッサーを作成することはできますが、ハッキリしています。よりクリーンな方法や、flask-restless でサポートされているものはありますか?

0 投票する
1 に答える
1006 参照

android - ネイティブ クライアント (アンドロイド、iOS) 用のハイパーメディア API?

ネイティブ クライアント (Android、iOS) 用のハイパーメディア API (HATEOAS) を公開することは良い考えだと思いますか? クライアントがそのような API を使用しようとするときの問題は何ですか?

UI は API からの応答によって駆動されると想定しています。

私は、ネイティブ クライアントと、それらが内部でどのように構築されているかについて、まったく経験がありません。