0

私はAPIを書いています。この時点まで、私はルートを使用してきました:

http://api.com/resource

そして、実行したいアクションをjsonフィールド内のリソースに渡し、そこから移動します。これは、プログラマーとユーザーの両方の観点から理想的または好ましい状況ですか?

または、

次のようになります:

http://api.com/resource/action

より便利で、安らぎ、正しいこと(あなたが選んだものを選んでください)。それともまったく問題ではありませんか?そのまま動作しますが、公の消費を目指しており、気づかなかった問題は、変更が難しくなる前に邪魔にならないようにしたいと思います。

編集:

詳細を追加するために、私が気にしないアクションはGET、POSTなどです。ルートがあります。

http://api.com/thing

これはPOSTルートであり、モノを作成します。この時点では、物事はデータベースやどこにも保存されていないため、作成された物事はすぐに応答とともに返されます。ユーザーは、物を赤、黄、または緑の色で塗装して返送するように指定できます。ユーザーの観点からは、上記の投稿データの一部として色の要件を指定するか、次のようなルートを設定する方が便利です。

 http://api.com/thing/red

投稿すると赤いものが返されます。

4

1 に答える 1

1

基本的に、actionHTTP動詞はRESTアプローチでリソースに対して実行するアクションを記述するために使用されるため、を(URLまたは送信されるデータで)指定する必要はありません。したがって、2つのソリューションは実際には「REST準拠」ではありません。最初に行うべきことは、次のことを行うhttp://api.com/resourcesために、ルートをいくつかのHTTP動詞と組み合わせることです。

いつものように、規則に従う方が良いです。あなたの2つのソリューションは、慣習やベストプラクティスを好むプログラマーにとって理想的ではありません。ただし、2番目のソリューションは読み取り可能で明示的です。つまり、2つのソリューションのどちらかを本当に選択したい場合は、2番目のソリューションの方が適しているようです。ただし、より多くのREST規則に従うようにAPIを更新する場合は、自分resourceを実際のリソースと見なし、 HTTP動詞を使用する必要があります。

RESTAPIに関する次の2つのプレゼンテーションをお勧めします。

この他の質問と私が与えた答えに興味があるかもしれません:RESTのリソースとアクションのURI規則

編集:あなたの新しい質問に従って、あなたの色も含めて、すべてのデータを投稿データとして送信します。より一貫性があります。とにかくなぜそれが違うのですか?異なるリソースを記述する場合にのみ、URIを変更する必要があります。色がaのプロパティにすぎない場合は、thing2つのリソースを記述せず、他のすべての投稿データと一緒に色を送信する必要があります。

于 2012-08-24T08:18:40.277 に答える