問題タブ [restful-architecture]
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.
wcf-rest - WCF REST - RESTful フレームワーク
私はインターネットの書評で次のようなものを見てきました:
REST はまったくカバーしておらず、せいぜい WCF REST をカバーしているだけであり、これはそもそも RESTful フレームワークではありません。
- どういう意味ですか?
- WCF RESTとRESTful フレームワークの違いは何ですか?
誰か詳しく教えてください。
私はまだ WCF REST を使い始めていませんが、すぐに始める予定です。
ご協力いただきありがとうございます...
rest - Tomcat コンテナの Dropwizard
Tomcat で実行される既存のアプリがあります。現在、新しい REST Web サービスの dropwizard を評価しています。現在、dropwizard には突堤が組み込まれています。jetty コンテナーではなく、Tomcat コンテナーを使用してデプロイするにはどうすればよいですか?
java - RESTful URL の設計
アドレスが有効かどうかをチェックする関数があります。
最初にURLは次のようになります
/address/validate/{city}/{state}/{zipCode}
しかし後で、アドレスのすべてのパラメーターは 1 つのリソースにすぎないと考えました。だから私はそれを
/address/validate/{city}.{state}.{zipCode}
どちらが良いか分からないのですが、アドバイスをお願いします。
android - http url で json 文字列を送信する
Android アプリから asp.net Web API として記述された REST サービスにデータを送信しています。私はすでに次のようなURLを正常に送信しています
http://www.deanblakely.com/REST/api/products/3と web.api のパラメーターを処理します。
さて、Android クライアントで、GSON を使用して複雑なオブジェクトを json 文字列に変換しました。文字列は次のようになります。
[{"TStamp":"2012 年 9 月 25 日 5:04:46 PM","メールアドレス":"webapi@restserver.com","高度":0.0,"緯度":3.3743984E7,"経度":-1.18107841 E8,"レグナム":1}]
このjson文字列をURLに入れるにはどうすればよいですか? たとえば、スラッシュの間に入れることはできますか? http://www.deanblakely.com/REST/api/objects/ {" TStamp ":"Sep 25, 2012 5:04:46 PM","emailaddress":"webapi@restserver.com","altitude など":0.0,"緯度":3.3743984E7,"経度":-1.18107841E8,"レグナム":1} ??
PS。web.api のすべてのメソッドは Gets です。シンプルなのでそのままにしておきたいです。この戦略に疑問がある場合は、http: //forums.asp.net/t/1843826.aspx/1 ?Web+api+CRUD+Operations を参照してください。
ありがとう、ディーン
web-services - RESTとSOAPWebサービスの解析
私はパブリックRESTfulAPIを使用しています。サービスはうまく機能しますが、WADLはどこにも見つかりませんでした。そのため、ストリームを受信したら、標準のDOMを使用して解析し、POJO(org.w3c.dom)に変換します。
しかし、数年前、私はSOAPサービスを使用し、Axis2を使用しました。そこでは、Axis2に付属のユーティリティを使用して、関連するクライアントクラスを生成し、サービスをJavaにマーシャリングすることができました。
WADLがあれば、同様のことができるREST用の同様のAPIがあるのだろうか。私が今それをする方法はそれほどひどくなくて速いです、それはただ時代遅れのようです。
rest - SOAP に加えて RESTful EJB インターフェースで構築された Glassfish
私は現在 Glassfish を学んでおり、注釈 @WebService (javax.jws.WebService) を追加することが可能であり、コンテナーは特定の Bean の SOAP Web サービスを自動的に有効にします。私は SOAP の使用にあまり興味がないので、サーバーの組み込み機能を使用して同じことを実現できるかどうか疑問に思っていましたが、RESTful サービスに対しては、明示的に自分で作成する必要はありませんでした。
ありがとう
rest - RESTful API でのオブジェクトのバージョン/リビジョンへのアクセス
RESTful API を設計しているときに、「同じオブジェクト」の異なるバージョンにアクセスする方法の問題に遭遇しました。ページ オブジェクトが一意のキーによって識別され、GET /api/page/pagekey によってアクセスされるとします。PUT /api/page/pagekey と本文に適切なドキュメントを送信することで更新できます。
これで、私たちのシステムはページの古いバージョンを追跡し、API 経由でもアクセスしたいと考えています。ドキュメントの古いバージョンがバージョン 1 であると仮定します。ページのこの特定のバージョンにアクセスする API を設計するには、少なくとも 2 つの方法があるようです。
- GET /api/ページ/ページキー/1
- GET /api/page/pagekey?version=1
最初のバリアントは、特定のバージョンを独自のリソースとしてレンダリングします。2 番目のバリアントは、既存のリソースにオプションのバージョン コンテキストを与えます。
- バリアント (1) または (2) はより良い解決策ですか? またはそれを行うためのさらに良い方法はありますか?
- バリアント (1) では、存在しないバージョン番号 (/api/page/pagekey/7 など) を要求すると、HTTP 404 Not Found がトリガーされる可能性がありますが、これは非常に便利です。バージョン パラメータなしで HTTP 200 Ok 応答を返す、既存のリソースのコンテキスト「バージョン」のみを変更するバリアント (2) を考慮すると、これも有効なステータス応答でしょうか?
rest - RESTでのユーザーの表現
私はゆっくりとRESTを理解し始めており、私を混乱させることが1つあります。
私は、RESTのほとんどのものが「リソース」であることを理解しています。それで、ユーザーのサインアップ/ログインの場合、どのようなリソースを参照するのだろうかと思っていましたか?
それusers
ですか?それでは、users
POSTonが新しいユーザーにサインアップすることを意味しますか。その場合、ユーザーを認証するにはどうすればよいですか?users
エンコードされたパスワード/ユーザー名のペアでGETしますか?
私はこれと本当に混乱しています。
私はRESTを理解し始めたばかりなので、私の理解は完全に間違っているかもしれません。
どんな助けでも大歓迎です!
ありがとう!
rest - リソースを更新し、関連するオブジェクトを作成するための RESTful なアプローチ
臨床データの分析を提供するサービス用の REST スタイル API を設計しています。API を使用すると、ユーザーは患者リソースを作成できます。このリソースは、サーバー側の分析に入力データを提供します。
患者の作成は安全でも冪等でもない (サーバーが ID を割り当てる) ため、POST が使用されます。 POST Patients
患者リソースは大きくなる可能性があるため、更新可能なサブリソース (医薬品など) があります。medications の更新は、med のセット全体が置き換えられるためべき等であるため、PUT が使用されます。
臨床分析は、リクエストによってトリガーされ POST /Patients/{patientId}/analysisResults
ます。または、ユーザーは、分析結果が POST /Patients 要求の応答で返されるように要求できます。これにより、追加の HTTP ラウンドトリップが節約されます。
私の問題はこれです。ユーザーは、更新 (PUT) への応答に含まれる分析結果を望んでPatient/Medications
います。結果を取得するために 2 回目の要求を行いたくないため、理解できます。したがってPUT Patient/Medications
、Patient リソースに関してはべき等ですが、新しい analysisResults サブリソースが作成されるため、すべてのリソースに関してはそうではありません。するべきか:
- a) PUT でこれを有効にします。
- b) POST でこれを有効にします。
- c) 新しい analysisResults を作成するには別の呼び出しが必要だと主張しますが、これによりエンド ユーザーの全体的な応答時間が長くなりますか?
asp.net-mvc - ASP.NET MVC モデル バインディングの優先順位と RESTful リソース
ASP.NET MVC が着信要求のモデルをバインドするときに使用する優先順位は、REST のコンテキストでは気になります。基本的に、MVC は次の優先順位で値を使用してモデルをバインドします。
- 投稿本文
- ルート(URL)
- クエリ文字列値
私を悩ませているのは、メッセージの本文からの値でリソースの Uri をどのように打ち負かすかです。
たとえば、RESTful リソースを次のように公開できます。
... 戻る:
「自己」リンク ( HALスタイル) を使用すると、犬の「id」値を必要とせずに、これらのリソースをサーバーに PUT することで、犬を変更するために必要なものがすべて揃っていることに注意してください。
サーバーには犬を更新するために必要なすべてがあり、混乱することはありません。MVC は、id (ルートから取得) を含め、すべてをモデルに適切にモデル バインドします。
ただし、私が見たいくつかの API スタイルには、メッセージ本文に「id」が含まれているため、次のようになります。
しかし、基本的に最も気になるのは、「{controller}/{id}」のように定義されたルートがあり、クライアントが次のことを行う場合です。
... 次に、MVC は 'id' を 5 (メッセージ本文から) にモデル バインドし、(ルートから) 7 ではなく、クライアントが提供したリソース URI に基づいて、Fido の情報を更新する必要がありました。これは、ドキュメントをハード ドライブの特定の場所に保存しようとしたときに、ドキュメント内の何かが原因で、別の場所に自動的に保存されることに似ています。
ASP.NET MVC ですぐに使えるモデル バインディングの優先順位を変更して、(競合が存在する場合) メッセージ本文よりもルート値を優先させるにはどうすればよいでしょうか。