RESTの背後にある考え方は、リソースとこれらのリソースに対するアクションがあるということです。リソース自体はURLで記述され、アクションはhttp動詞で記述されます。
したがって、GET
は読み取りのアクションであり、/customer/{id}
ロードするリソースを記述します。これで結構です。can.Model
したがって、基本的なRESTインターフェイスでCRUD機能を処理するように設計されているため、5つの方法はすべて問題ありません。
最後の(コメントされた)ものの問題は、URL内でリソースとアクションを混在させることです。「アクティブ化」は間違いなく動詞であり、リソースはありません。したがって、そこには属していませんが、http動詞である必要があります。これが、RESTインターフェースをプログラミングするこの方法のサポートが見つからない理由です-単にRESTではないからです。
APIをリソースとして考えるように再設計することもできますがactivate
、アクティブ化または非アクティブ化された顧客のステータスがcustomer
リソースの一部である可能性が高くなります。update
顧客について何かを変更しているので、この方法を使用します。CanJSでは、次のようになります。
Customer.findOne({id: 5), function( customer ){
customer.attr('active', true);
customer.save();
}
簡単に言うと、RESTでは、URLはすべて名詞に関するものであり、httpメソッドはすべて動詞に関するものです。
これは物事を少し明確にするのに役立ちますか?