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

REST(Representational State Transfer)は、World Wide Webなどの分散ハイパーメディアシステム用のソフトウェアアーキテクチャのスタイルです。異種システム間で統一されたインターフェースを持つことから生じるサーバーからのクライアントの本質的な分離により、SOAPなどのRPCアーキテクチャーに比べて人気が高まっています。

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


11
SOAPベースのサービスの代わりにRESTを使用するのはなぜですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 7年前休業。 この質問を改善する 今日、RESTに関する興味深いデモに参加しましたが、RESTがSOAPベースのサービススタックよりも使いやすく、実装が簡単である1つの理由(または1つの理由もありません)を考えることができませんでした。 「実世界」の誰もがSOAPベースのサービスの代わりにRESTを使用する理由のいくつかは何ですか?
153 web-services  rest 

5
規則によってどのREST PUT / POST / DELETE呼び出しが返すべきですか?
「RESTイデオロギー」によると、PUT / POST / DELETEリクエストのレスポンス本文には何を含める必要がありますか? 戻りコードはどうですか?でHTTP_OK十分? そのような慣習がある場合、その理由は何ですか? 私は、POST / PUTの違いを説明良い記事を見つけた:POST PUT対 しかし、それはまだ私の質問に答えていません。
153 rest  http  post  http-delete 

4
クエリパラメータの長いリストを使用してRESTfulクエリAPIを設計する[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 この質問を改善する いくつかのフィルターに基づいてオブジェクトのセットを返すRESTfulクエリAPIを設計する必要があります。このための通常のHTTPメソッドはGETです。唯一の問題は、少なくとも12個のフィルターを設定できることです。これらすべてをクエリパラメーターとして渡すと、URLが非常に長くなる可能性があります(ファイアウォールによってブロックされるのに十分な長さ)。 パラメータの数を減らすことはオプションではありません。 私が考えることができる1つの代替案は、URIでPOSTメソッドを利用し、POSTボディの一部としてフィルターを送信することです。これはRESTfull(クエリデータへのPOST呼び出しを行う)に対するものですか? 誰かより良いデザインの提案がありますか?


8
REST APIで「まだ準備ができていません。後でもう一度やり直してください」のHTTPステータスコードを選択するには [閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 この質問を改善する 私はhttp://server/thingyapi/thingyblob/1234、ダウンロードするもの1234に関連付けられたファイル(別名「blob」)を返すRESTful APIを開発しています。ただし、サーバーにファイルが存在しないときに要求が行われた可能性がありますが、後で確実に使用できるようになります。サーバーには、すべてのもののすべてのblobを生成するバッチプロセスがあります。Thingy 1234はすでに存在し、Blob以外のそのデータはすでに利用可能です。サーバーは、まだ1234のblobを生成する必要がありません。 404を返したくありません。それは存在しないもののためのものです。これは存在するものですが、そのBLOBはまだ生成されていません。ちょっと「処理中」のYouTube動画が好きです。リダイレクトコードも適切だとは思いません。試す「他の」URLはありません。 このような場合に返される正しいHTTPステータスコードは何ですか?

11
JavaでのRESTful呼び出し
JavaでRESTfulな呼び出しを行います。しかし、電話のかけ方がわかりません。URLConnectionなどを使用する必要がありますか?誰かが私を助けてくれますか?ありがとうございました。
150 java  rest 

13
RESTでのトランザクション?
RESTで次のユースケースをどのように実装するのでしょうか。概念モデルを損なうことなく行うことさえ可能ですか? 単一のトランザクションのスコープ内で複数のリソースを読み取るか更新します。たとえば、ボブの銀行口座からジョンの口座に$ 100を転送します。 私の知る限り、これを実装する唯一の方法は不正行為です。JohnまたはBobのいずれかに関連付けられたリソースにPOSTし、単一のトランザクションを使用して操作全体を実行できます。私が懸念している限りでは、これはRESTアーキテクチャーを壊します。なぜなら、実際には個々のリソースを操作するのではなく、POSTを介してRPC呼び出しをトンネリングしているからです。
147 rest 

7
Node.js package.jsonのメインパラメータ
すでにかなりの検索を行っています。ただし、Node.jsのpackage.jsonの主なパラメーターについてはまだ疑問があります。 このフィールドに入力するとどのように役立ちますか?別の言い方をすると、このフィールドが存在する場合、モジュールを別のスタイルで開始できますか? メインパラメータに複数のスクリプトを入力できますか?はいの場合、2つのスレッドとして開始されますか?いいえの場合、モジュールで2つのスクリプトを開始し、それらを並行して実行するにはどうすればよいですか? 2つ目の質問はかなり奇妙なことです。これは、OpenShiftでNode.jsアプリケーションをホストしているためですが、アプリケーションは2つの主要コンポーネントで構成されています。1つはREST APIで、も​​う1つは通知配信サービスです。 通知配信プロセスがREST APIをシングルスレッドとして実装した場合、REST APIがブロックされると思います。ただし、同じMongoDBカートリッジに接続する必要があります。さらに、可能であれば、両方のコンポーネントを同じギアで使用できる場合は、1つのギアを節約したいと思います。 どんな提案も大歓迎です。

7
Django REST Framework:ModelSerializerにフィールドを追加する
モデルをシリアル化したいが、シリアル化するモデルインスタンスでいくつかのデータベースルックアップを実行する必要がある追加のフィールドを含めたい: class FooSerializer(serializers.ModelSerializer): my_field = ... # result of some database queries on the input Foo object class Meta: model = Foo fields = ('id', 'name', 'myfield') これを行う正しい方法は何ですか?余分な「コンテキスト」をシリアライザに渡すことができると思いますが、コンテキストディクショナリの追加フィールドを渡す正しい答えは何ですか。そのアプローチでは、必要なフィールドを取得するロジックはシリアライザ定義で自己完結することはなく、すべてのシリアル化されたインスタンスがを必要とするため理想的ですmy_field。他の場所でDRFシリアライザのドキュメントでそれは言う、「追加のフィールドは、モデル上の任意のプロパティまたは呼び出し可能に対応させることができます」。余分なフィールドは私が話していることですか?Fooのモデル定義でmy_field値を返す関数を定義し、シリアライザでmy_fieldをその呼び出し可能オブジェクトにフックする必要がありますか?それはどのように見えますか? よろしくお願いします。必要に応じて、質問を明確にします。

4
Spring RestTemplateでフォームデータをPOSTする方法
次の(機能する)curlスニペットをRestTemplate呼び出しに変換したい: curl -i -X POST -d "email=first.last@example.com" https://app.example.com/hr/email emailパラメータを正しく渡すにはどうすればよいですか?次のコードでは、404 Not Foundレスポンスが返されます。 String url = "https://app.example.com/hr/email"; Map<String, String> params = new HashMap<String, String>(); params.put("email", "first.last@example.com"); RestTemplate restTemplate = new RestTemplate(); ResponseEntity<String> response = restTemplate.postForEntity( url, params, String.class ); PostManで正しい呼び出しを定式化しようとしましたが、本文で「form-data」パラメーターとしてemailパラメーターを指定することで、正しく機能するようにできます。RestTemplateでこの機能を実現する正しい方法は何ですか?

5
NetflixまたはTwitterスタイルのWebサービスはRESTまたはSOAPを使用する必要がありますか?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 TwitterとNetflixの2つのRESTサービスを実装しました。どちらの場合も、SOAPではなくRESTとしてこれらのサービスを公開するという決定に関係する使用法とロジックを見つけるのに苦労しました。誰かが私が欠けているものを手がかりにして、RESTがこれらのようなサービスのサービス実装として使用された理由を説明できることを願っています。 RESTサービスの実装は、SOAPサービスの実装よりも無限に時間がかかります。すべての最新の言語/フレームワーク/プラットフォームがWSDLを読み取り、プロキシクラスとクライアントを出力するためのツールが存在します。RESTサービスの実装は手動で行われます-これを取得するには-ドキュメントを読んでください。さらに、これらの2つのサービスを実装する際、実際のスキーマや参照ドキュメントがないため、パイプを介して何が返されるかを「推測」する必要があります。 とにかくXMLを返すRESTサービスを作成する理由は何ですか。唯一の違いは、RESTでは各要素/属性が表すタイプがわからないということです。自分で実装して、いつの日か常にintだと思っていたフィールドで文字列が検出されないことを願っています。SOAPはWSDLを使用してデータ構造を定義するため、これは非常に簡単です。 SOAPにはSOAPエンベロープの「オーバーヘッド」があるという不満を聞いたことがあります。この時代では、ほんの数バイトを心配する必要があるのでしょうか。 RESTを使用すると、URLをブラウザーにポップするだけでデータを表示できるという議論を聞いたことがあります。もちろん、RESTサービスが単純な認証を使用しているか、認証を使用していない場合。たとえば、NetflixサービスはOAuthを使用しており、リクエストを送信する前に、署名とエンコードを行う必要があります。 各リソースに「読み取り可能な」URLが必要なのはなぜですか?ツールを使用してサービスを実装している場合、実際のURLに本当に関心があるのでしょうか。
145 rest  soap 

2
AngularJS $ resource RESTfulの例
$ resourceを使用してRESTful Webサービス(まだ作業中です)を呼び出したいのですが、AngularJSスクリプトが最初に正しいかどうかを確認したいと思います。 todo DTOには次の機能があります。 {id, order, content, done} :cmdこれapi/1/todo/resetで、データベースのtodoテーブルをクリアするために呼び出すことができます。 これが私の理解のコメント付きのコードです: function TodoService($resource) { var src = $resource('api/1/todo/:id:cmd', {id: "@id", cmd: "@cmd"}, //parameters default { ListTodos: { method: "GET", params: {} }, GetTodo: { method: "GET", params: { id: 0 } }, CreateTodo: { method: "POST", params: { content: "", …

8
RESTfulな方法でリソースのサーバー側メソッドを呼び出す
RESTについて初歩的な理解があることを覚えておいてください。私がこのURLを持っているとしましょう: http://api.animals.com/v1/dogs/1/ そして今、私はサーバーに犬の鳴き声をさせたいと思います。サーバーだけがこれを行う方法を知っています。残りの永遠のために犬を10分ごとに吠えるCRONジョブで実行したいとします。その呼び出しはどのように見えますか?私はこれをやりたいと思っています: URLリクエスト: ACTION http://api.animals.com/v1/dogs/1/ リクエストの本文: {"action":"bark"} 独自のHTTPメソッドを作成することに夢中になる前に、私を助けて、RESTfulな方法でサーバー側メソッドを呼び出す方法についてより良いアイデアを教えてください。:) 明確化のために編集 「樹皮」メソッドの機能について、さらに説明します。異なる構造のAPI呼び出しが発生する可能性のあるいくつかのオプションを次に示します。 barkはdog.emailにメールを送信し、何も記録しません。 barkはdog.emailにメールを送信し、dog.barkCountを1ずつ増分します。 barkは、吠え声が発生したときにbark.timestamp記録で新しい「吠え声」レコードを作成します。また、dog.barkCountを1増やします。 barkはシステムコマンドを実行して、最新バージョンの犬のコードをGithubから取得します。次に、dog.ownerにテキストメッセージを送信して、新しい犬のコードが生産中であることを伝えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.