15

RESTful API を実装するには、次のような URL 構造を実装する必要があるというのは本当ですか?

http://example.com/post/
http://example.com/post/123

/123編集、削除に使用される場所

質問をする別の方法は、次のとおりです。このように見える URL を RESTful と呼ぶことができますか?

http://example.com/script.php?method=get_title&blogid=123
4

8 に答える 8

14

そのような URI 構造を設計する必要はありませんそれもあるかもしれません/some_obscure_string/base64_encoded_title/unique_id。これは、他のいくつかの要因によっては、RESTful になることもあります。

しかし、RESTful Web アプリケーションで URI を設計する方法にはいくつかのベスト プラクティスがあり、可能な限りシンプルで人間が読めるようにすることはその 1 つです。

あなたの例http://example.com/script.php?method=get_title&blogid=123はRESTfulでもかまいませんが、クエリパラメーターは、代わりにある種のRPCまたはRMI-over-HTTPが使用されていることを示しています。

要約すると、URI の設計をあまり考えないでください。これは、アプリケーションの優れた適切な RESTful 設計によって自動的に実現されます。

于 2010-10-30T08:33:47.107 に答える
8

REST の背後にある考え方は、すべてのリソースに独自の URL があり、さまざまな HTTP メソッドを使用してそれらのリソースとやり取りするというものです。異なるリソース間の階層が URL に反映されるように URL 構造を定義することは理にかなっていますが、必須ではありません。

このようなURLがあれば

 /all-posts/
 /first-post
 /some-stuff/second-post
 /third-post

これに RESTful API を提供することもできます。アイデアは、GETto/all-posts/がすべての投稿オブジェクトの URL のリストを返し、クライアントがそれらの URL を使用してリソースとやり取りするというものです。基本的に、クライアントは URL を不透明なデータとして扱う必要があります。

クライアントに埋め込まれている URL が変更されない限り、クライアントを変更せずに構造を変更することもできます。

URL の例は、メソッドが含まれているため、RESTful API に属していない可能性がありますget_title。REST では、URL はモノを表します。REST はさまざまな HTTP メソッドを使用するため、オブジェクトに対して何を行うか (変更する必要があるか、コンテンツを取得する必要があるかなど) は URL の一部ではありません。

于 2010-10-30T08:43:00.683 に答える
5

REST の重要な側面は、URL がリソースであることです。うりのような

http://example.com/script.php?etc-etc-etc

URI のリソース部分にリソース識別子を入れません。これは、RESTful API で get パラメーターを使用してはならないということではありません。実際、それで問題ありません。

http://example.com/posts?sort=date_asc&offset=20&limit=10

最も古い投稿の 3 ページ目の URI を取得するのに最適な方法です。ただし、この方法で get パラメーターを使用するのは、メソッドも であるリクエストでのみ使用する必要がありGETます。 PUT特にPOSTメソッドは、パス部分でのみ影響を受けるリソースで単純なURIを実際に使用する必要があります。

于 2010-10-30T08:51:20.663 に答える
1

URL の例:

GET http://del.icio.us/api/
GET http://del.icio.us/api/peej/tags/
GET http://del.icio.us/api/peej/tags/test
DELETE http://del.icio.us/api/peej/bookmarks/[hash]
于 2010-10-30T08:38:52.837 に答える
1

REST の概念は、REST が URL 駆動型であり、大きなデータ BLOB によって駆動されないという事実に実際に基づいています。REST では、メソッドを呼び出すために巨大な SOAP リクエストを渡す必要はありません。メソッドの呼び出し、オブジェクトの作成、やりたいことはすべて、単に URL と、使用した動詞とその URL によって呼び出されます。

于 2010-10-30T08:43:18.977 に答える
0

これは役に立ちます。参照: RESTful サービスの URL

于 2021-07-07T11:40:51.277 に答える
0

URL の構造は重要ではありません。重要なのは、各 URL が正確に 1 つのリソースを識別することです。各リソースはそれを指す複数の URL を持つことができますが、各 URL は 1 つのリソースのみを指す必要があります。

于 2010-10-30T09:01:16.790 に答える