10

Java の jax-rs のような完全な REST API には、リソースのパスを定義するための定義が含まれており、完全な GET、POST、PUT 要求を使用します。

しかし、通常、REST API に遭遇すると、それは通常、標準の HTTP GET 要求であり、応答は JSON 出力です。実際の REST 要求の要は JSON 出力を使用しているように見えますが、REST の真の定義では、XML、JSON、またはその他の出力タイプが許可されています。

たとえば、Twitter API には「JSON」出力があり、GET 要求を使用します。URL の一部を次に示します。

https://dev.twitter.com/docs/api/1.1/get/search/tweets

また、「GET」パラメーターを使用してリクエストを変更することもできます。Twitter の「search/tweets」機能は、たまたま JSON 応答を返す明確に定義された URI パスを持つ単純な http 要求のようです。それは本当にRESTですか?

あなたにとってREST APIとは何ですか?

Jax-rs http://en.wikipedia.org/wiki/Java_API_for_RESTful_Web_Services

(これが少し主観的または逸話的である場合は申し訳ありませんが、開発者はこれについて疑問に思っていたと思います)

4

5 に答える 5

6

REST (Representational State Transfer) は、 Roy Fieldings (別名 HTTP を作成した人物) によって論文で最初に書かれた漠然としたアーキテクチャ設計パターンです。

ほとんどの場合 (99% の時間)、誰かが REST API を必要とするときは、HTTP 動詞と、リソースの場所を記述する URL を含むリクエストを送信する Web API が必要であることを意味します。 HTTP 動詞。次に、Web サーバーは、要求された動詞をResourceで実行し、Response をユーザーに送り返します。通常、 Response には (使用される HTTP 動詞に応じて) 結果のResourceの Representation が含まれます。リソースは、HTML、JSON、XML、またはその他のさまざまなMIME タイプとして表すことができます。

応答で使用される表現は、API が RESTful であるかどうかを実際に示しているわけではありません。それは、インターフェースの URL がどのように構造化されているか、および HTTP 動詞を使用して Web サーバーの動作がどのように定義されているかです。適切に準拠した REST API では、GET 動詞を使用してリソースの読み取りのみを行い、POST 動詞を使用してリソースを変更し、PUT を使用してリソースを追加/置換し、DELETE を使用してリソースを削除する必要があります。予想される動詞の動作のより正式な定義は、HTTP 仕様にリストされています。

于 2013-02-26T06:18:23.160 に答える
5

REST は (一言で言えば) URI を介してリソースにアクセスでき、HTTP のような動詞を使用してリソースを操作できるというパラダイムです (つまり、HTTP は REST の原則を念頭に置いて設計されています)。これは、たとえば、アプリに 1 つの URI を設定し、データ ペイロードを POST してサーバーに目的を伝えるのとは対照的です。

大まかに例えると、ファイルシステムは通常 RESTful です。異なるリソースは、パスを反映する方法で必ずしもディスクに格納されているわけではありませんが、アクセスと書き込みが容易な異なるアドレス (ディレクトリ) に存在します。または、ほとんどのデータベースはRESTful ではありません。場所でデータを検索するのではなく、宣言型 API を介してデータベースに接続し、データにアクセスします。

リソースに関する限り、 HTML、JSON、水上スキーをするリスのビデオなどは、RESTful 原則に従うのとは異なるレベルの抽象化です。

于 2013-02-26T04:48:11.883 に答える
0

それだけです。REST はシンプルになるように設計されています。その要点は、各 URL が一意のリソースに対応することです。リソースの形式は通常 json ですが、何でもかまいません。通常は、URL の「拡張子」または「形式」の部分によって決まります。たとえば、「/posts/1.json」と「/posts/1.xml」は、同じ論理リソースの 2 つの異なる表現であり、それぞれ json と xml でフォーマットされています。RESTful インターフェイスのもう 1 つの一般的な特徴は、新しいリソースを取得、変更、作成するために GET、PUT、POST などの HTTP 動詞を使用することです。それだけです。

于 2013-02-26T04:51:33.347 に答える
0

REST はかなり「緩い」標準ですが、JSON は標準化するのに妥当な形式です。JSON 全体に関する私の唯一の主な懸念は、XML のように文字エンコーディングを明示的に定義する方法がないことです。動詞に関しては、動詞の意味のある用法に固執するのは良いことですが、必ずしもすべての状況で 1 対 1 でマップするとは限らないため、いつものように、常識を使用してください :)

于 2013-02-26T04:46:35.633 に答える
0

JSON の場合も、XML の場合もあります。JSON は厳密には業界の「標準」ではありませんが、軽量で簡単なため、多くの開発者 (私を含む) が気に入っています。

于 2013-02-26T04:47:21.990 に答える