2017-06-07 11 views
4

現在、REST APIを開発中です。REST APIのURLパターンデザイン

ユーザーに関連付けられた製品を返すAPIと、製品に関連付けられた製品を返すAPIを開発しています。

URLパターンを正しく設定する方法がわかりません。

私が曖昧だと思うのは、製品を通じて製品リストを返すURLの場合、製品が繰り返し表示されるということです。

いいURLパターンを教えてください。

以下のオプションを検討しています。

1.

/domain/v1/relatedProducts/users/{userId} 

/domain/v1/relatedProducts/products/{productId} 

2.

/domain/v1/user/{userId}/relatedProducts 

/domain/v1/products/{productId}/relatedProducts 

3. 他のURLパターンを教えてください。

+0

ユーザーはバージョン( 'v1')を知りたくないので最初の選択肢はしっかりとしていて、よく見えます。進化し続けるAPIやますます多くのフィルタなどで、どのレストをあなたがジェネラルで呼び出すかを知ることが望ましいため、これは私の好みです。この '?= A = xxx&B = xxx&C = xxx'のようなフィルタでは、第2のオプションは第1のオプションよりも読みにくく、少なくとも読みにくくなります。 一般的に、これは、意見に基づいて、および/または広すぎるために閉鎖されたり、フラグが立てられたりする可能性のある質問です。 – Nico

+0

私はウェブドメインではあまり期限がありませんが、urlの右部分、つまりcom.organization.group.team.ThomasProfile'に変数部分がプッシュされているのを見てきました。フューテートでは、製品の継ぎ目が良いアイデアの後にそれを持っています。 –

+0

私はAPIを開発したとき、私はこれに従った。これは、私がREST APIデザインに関連して読んだ素晴らしいブログの1つです。https://blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/ – Truthira

答えて

6

商品はユーザーに関連しているため、まずユーザーを選択してからすべての商品をリストする必要があります。それは私がuserusersのない使用予告

/domain/v1/users/{userId}/products 

様および productsない relatedProducts

/domain/v1/users/{userId}/products/{productId} 

も注意する必要があり、あなたはそれを維持するか、の一部を、それを削除することができv1と間違って何の事はありません大手企業はバージョンの部分を使用します。

あなたは関係

あなたがより有用見つけることができるため

  1. 使用名詞が、無動詞
  2. 使用複数名詞
  3. 使用サブリソースをURLパターンにいくつかのベストプラクティスに従うことができます詳細はrestapitutorial Resource Naming

+0

にすることになります。したがって、2番目のケースでは、関連するクエリ製品としての製品? /ドメイン/ v1/products/{製品} /製品 私はあなたが言ったパターンを知っていました。 しかし、私は上記のURLの意味を理解することは難しいと思った。 –

+0

@lucaskim製品だけを照会する場合は、/ domain/v1/products/{product}を使用できます。 –