1

私はまだウェブ開発に非常に慣れていないので、この質問が本当にばかげている場合はご容赦ください。

私は REST の原則に従おうとしていますが、JSON が Ruby や API を介して外部に接続されているものとどのように連携しているかに本当に感謝しています。myurl.com/ExampleModel/MyIDParameter のようにパラメータを URL に直接入力し、JSON (存在する場合) をその URI に送信することは、REST ではかなり標準的であることを私は知っています。

私が知りたいのは、URI からパラメーターを削除し (および使用しない場合はルーティングも)、JSON にパラメーターを含めることは、REST の原則に反することですか?

たとえば、これを呼び出す代わりに:

myurl.com/ExampleModel/id
{
    "name" : "My Name",
    "anotherParameter" : "A random string"
}

これを次のように呼び出します。

myurl.com/ExampleModel
{
    "id" : 512,
    "name" : "My Name",
    "anotherParameter" : "A random string"
}
4

4 に答える 4

4

一意のmyurl.com/ExampleModelリソースを識別する場合は、これをURIとして使用できます。しかし、私はそれを疑っています。

アプリケーションでこのような別のリソース表現を使用することもできますか?

{
    "id" : 513,
    "name" : "Some Other Name",
    "anotherParameter" : "A differnet random string"
}

はいの場合、そのURIは何ですか?

このようなリソース表現に対処するには、最初のフォームを使用することをお勧めします。

GET http://myurl.com/ExampleModel/513

注: JSONは二重引用符とコンマが欠落しているため、無効です。

于 2012-11-02T14:43:26.617 に答える
3

データ交換の形式は、REST の有無とは関係ないと思います。

頑張れ。

于 2012-11-02T14:37:05.073 に答える
2

まず、免責事項: 私は Ruby でプログラミングしていないので、Ruby に関する特定の質問にはお答えできません。しかし、私の答えは、REST の原則に関するあなたの質問に向けられています。

最後に、答えは次のとおりです。これは、アプリケーションがどのように機能するかの問題です。最初に、開発者が使用する一般的なアプローチについて説明します。私は一般的だと言いましたが、それは黄金律ではありません。

を指定するとmyurl.com/ExampleModel/id. このようなパターンの一般的な意味は、GET または PUT 操作で使用されます。ID値のあるオブジェクトに関する情報が欲しいという意味でGETしますid。オブジェクトの ID がid.

2 番目の URL について言及したときの一般的な解釈は、コレクションmyurl.com/ExampleModelのすべてのレコードを表示することです。ExampleModelこれは、API を作成する開発者が使用するデフォルトの動作です。

それで、何かをしたいときにRESTの原則に違反しますか?答えはNOです。ただし、API を他の人に渡すと、少し混乱する可能性があります。

それで、あなたはそれを持っています。アプリケーションに最適なものを決定するのはあなた次第です。

于 2012-11-02T14:45:34.060 に答える
1

REST は、厳密に設計されたプロトコルというよりも、概念に近いものです。ほとんどの人は REST を単純にすべての HTTP 動詞を使用して同じ URL でさまざまなことを行うことだと考えており、その考え方にはある程度の妥当性があります。

ただし、REST の背後にある元の意図を使用して実際に優れた API を作成する方法についての情報が必要な場合は、次のようにします。

http://blog.steveklabnik.com/posts/2011-07-03-nobody-understands-rest-or-http

http://blog.steveklabnik.com/posts/2011-08-07-some-people-understand-rest-and-http

したがって、ブログの原則に従う場合は、URL でリソースを ID で参照することが非常に重要です。しかし、それはあなたの API であり、物事がどのように行われなければならないかについての厳密な規則はありません。API をより見つけやすくする方法についての推奨事項だけです。

于 2012-11-02T14:47:32.550 に答える