タグ付けされた質問 「restful-architecture」

4
REST API-ファイル(画像)処理-ベストプラクティス
JSONを受け入れて応答するREST APIを備えたサーバーを開発しています。問題は、クライアントからサーバーに画像をアップロードする必要がある場合です。 注:また、エンティティ(ユーザー)が複数のファイル(carPhoto、licensePhoto)を持ち、他のプロパティ(name、email ...)を持つことができるユースケースについても話しますが、新しいユーザーを作成すると、これらの画像は送信されません。登録プロセスの後に追加されます。 私が知っている解決策ですが、それぞれにいくつかの欠陥があります 1. JSONの代わりにmultipart / form-dataを使用する good:POSTおよびPUTリクエストは可能な限りRESTfulであり、ファイルとともにテキスト入力を含めることができます。 短所:JSONではなく、テストやデバッグなどがmultipart / form-dataに比べてはるかに簡単になりました。 2.個別のファイルの更新を許可する 新しいユーザーを作成するためのPOSTリクエストは画像を追加することを許可していません(これは、私が最初に言ったユースケースでは問題ありません)。 good:すべて(ファイルのアップロード自体を除く)はJSONのままなので、テストとデバッグが簡単です(長さを気にせずに完全なJSONリクエストをログに記録できます) 短所:直感的ではありません。エンティティのすべての変数を一度にPOSTまたはPUTすることはできません。また、このアドレス/users/4/carPhotoはコレクションと見なすことができます(REST APIの標準的な使用例は次のようになります/users/4/shipments)。通常、エンティティの各変数、たとえばusers / 4 / nameをGET / PUTすることはできません(したくありません)。users / 4でGETを使用して名前を取得し、PUTを使用して名前を変更できます。IDの後に何かがある場合、それは通常、users / 4 / reviewsのような別のコレクションです。 3. Base64を使用する JSONとして送信しますが、Base64でファイルをエンコードします。 good:最初のソリューションと同じで、できるだけRESTfulなサービスです。 短所:繰り返しになりますが、テストとデバッグははるかに悪く(ボディにはメガバイトのデータが含まれる可能性があります)、サイズが増加し、クライアントとサーバーの両方で処理時間が長くなります。 私は本当にソリューション番号を使用したいと思います。2、しかし、それはその短所を持っています...誰でも私に「何が最善」の解決策のより良い洞察を与えることができますか? 私の目標は、できるだけ多くの標準を組み込んだRESTfulサービスを提供することですが、できるだけシンプルにしたいと考えています。

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にテキストメッセージを送信して、新しい犬のコードが生産中であることを伝えます。

7
RESTful APIでパスパラメータとクエリパラメータを使用するのはいつですか?
RESTful APIを非常に予測可能にしたいと考えています。クエリパラメータを使用するのではなく、URIを使用してデータのセグメンテーションを行うタイミングを決定するためのベストプラクティスは何ですか。 ページネーション、並べ替え、およびグループ化をサポートするシステムパラメータは、「?」の後に来るのが理にかなっています。しかし、 'status'や 'region'などのフィールド、またはコレクションをセグメント化するその他の属性についてはどうでしょうか。それらもクエリパラメータになる場合、パスパラメータをいつ使用するかを知る上での経験則は何ですか?

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