2017-02-25 3 views
0

ベスト・プラクティスであるリソースの「ドラフト」バージョンを作成するためのエンドポイントの名前を付けるときは、RESTfulなAPIデザイン、ドラフト・エンドポイントの名前付け

POST >>/posts

{ 
    title: 'My Post', 
    body: 'The content of my post', 
    status: 'DRAFT', 
} 

またはそれは良いです:

POST >>/posts/drafts

{ 
    title: 'My Post', 
    body: 'The content of my post', 
} 
+1

http://stackoverflow.com/questions/6845772/rest-uri-convention-singular-or-plural-name-of-resource-while-creating-it –

答えて

0

私は、ペイロードに見たものから、DRAFTはちょうどステータスですリソース。 PUTを使用して更新できます。

URIパスでDRAFTを使用する理由について詳しく説明しますか?

+0

「PUT」はエンティティ全体を置換するためのもので、 PATCH' - 部分的な更新のために。 –

0

ほとんどのものと同様に、私はそれが依存していると言います。 RESTを使用する際の一般的な前提は、リソースのコレクションがあることです。そのため、最も一般的な命名規則は、エンドポイントに名前を付けるときに複数形を使用することです。

私は/postsと呼んでいますが、私はGETをすることで投稿の集合を受け取ると思います。同様に/posts/{id}を呼び出すことによって、特定のIDを持つ投稿を受け取る必要があります。 リソースコレクションも相互に埋め込まれています。エンドポイントが表示されたら/posts/{id}/drafts私は与えられたIDの投稿の下書きを取得すると仮定します。

ここで問題になるのは、データを2つの別々のコレクション(何とか同期する必要があります)として扱うか、これが埋め込まれたコレクションにこだわりたいのですか?最初の場合、2つのエンドポイント/posts/draftsを持つことができます。 2番目の場合は、ルートエンドポイント/postsとし、次に/posts/{id}/draftsとする必要があります。

投稿が草稿のコレクションを持っていない場合は、ただ1つの/postsエンドポイントを使用するだけで、追加のものは指定しないでください。これによりAPIのデザインが乱れることになります。あなたの最初の提案と同じように。

関連する問題