2017-06-01 10 views
-2

TutorialsPoint RESTfulな設計のコンテキストで次のメソッドを定義します。URIにはHTTPアクション動詞が含まれています。このAPIをRESTfulと考えることはできますか?

URI   HTTP  Body   Result 
----------------------------------------------------------------- 
listUsers  GET  empty   Show list of all the users 
addUser  POST  JSON string Add details of new user 
deleteUser DELETE JSON string Delete an existing user 
:id   GET  empty   Show details of a user 

私はそれはRESTfulなはないので、これは、誤解を招くと思います。

RESTfulな設計には、次のようになります:

URI   HTTP  Body   Result 
---------------------------------------------------------------- 
users  GET  empty   Show list of all the users 
users  POST  JSON string Add details of new user 
users  DELETE empty   Delete an existing user 
users/:id GET  empty   Show details of a user 

は、RESTfulな正しいの私の理解ですか? URL内のdeleteUserはすでにOnce And Only Onceの普遍的原則に違反するDELETE HTTPアクション、として渡された情報を複製するため


かかわらず、RESTfulなの定義の、私の意見では、TutorialsPointは、間違ったデザインを発表しました。

答えて

2

エンドポイントの最初のセットは、REST APIのための悪いデザインです。それはすべてRPCに関するものです(そして、DELETEリクエストはペイロードを持つべきではありません)。

エンドポイントの2つ目のセットはリソース指向のであり、これはREST APIで必要なものです。 URIはリソースを識別し、HTTPメソッドはリソースに対する操作を表します。


ただし、RESTアーキテクチャはURI設計をはるかに超えています。

RESTアーキテクチャスタイルはプロトコルに依存しませんが、ほとんどの場合、HTTPプロトコルで設計されています。

RESTfulアプリケーションの基本的な概念は、リソースです。また、リソースはさまざまな表現を持つことができます。詳細については、answerを参考にしてください。

+0

あなたは "それだけでURLがRESTfulなはない" とはどういう意味ですか?リソースの周りのRESTfulなデザインは、URLにはリソースアドレスが含まれ、アクションアドレスは含まれないことを意味すると思います。少なくとも、HTTPリクエストタイプとして渡されたものを複製するべきではありません。 – alpav

+0

@alpav _RESTful_コンセプトはURLの設計方法に依存しません。 URLは、HTTPプロトコル上でRESTを設計するときはリソース指向でなければなりませんが、尊重しなければならない一連の制約もあります。 –

+0

はい、リソース指向のURLはRESTfulな設計要件の唯一の意味ではありませんが、それは意味ですか? RESTfulなデザインでアクションをURLの内部に置くことはできますか?私はそれができないと思う。 – alpav

2

はい、あなたの理解は正しいです。そのチュートリアルは誤解を招く。

関連する問題