基本的に、私のアプリの1つの機能は、ログに記録されたユーザーの友達を取得することです。
実際、私は両方の種類のエンドポイントの間で迷っています:
1を使用すると、認証トークンを通じてuserId
に到達できます。
2を使用すると、サーバーは、渡されたuserId
と、認証トークンで指定されたログに記録されたユーザーIDとの対応関係をさらにチェックして、他のユーザーデータへの悪意のあるアクセスを回避する必要があります。友達。
したがって、1つで十分ですが、標準のレストURLのようには聞こえません。
良い習慣とは何ですか?
最初のソリューションには、データの重複を回避できるという利点があります。要求は明らかに意味します:
こんにちは、ジョンです。 my友達のリストを送ってください。
可能であれば、GET /api/friends
。
一方、他のユーザーの友達にアクセスできることを期待している場合は、2番目のソリューションが適切です。リクエストとは:
こんにちは、ジョンです。ジョンの友達のリストをください。
しかし、以下の場合もあります。
こんにちは、ジョンです。メアリーの友達のリストをください。
たとえば、そのような変更が可能な状況の1つは、自分の友達だけでなく、友達の友達も見つけることができる場合です。
Rest Apiはハイパーテキスト駆動である必要があります!標準のHTMLページで1つのリンクから別のリンクをクリックするように。
URLは、リソースに対する一意の識別子です。複数のリソースを表すURLを持つことは、ReSTと完全に一致しません。
あなたの例では、次のURL:
/api/users/:userId
:userIdフレンズURLへの応答にリンクが必要です
Roy Fieldingの論文には、ReSTに準拠するために必要な一連の制約が含まれています。
http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-drivenhttp://fr.slideshare.net/rnewton/2013- 06q-connycrestfulwebapishttp://www.ics.uci.edu/~fielding/pubs/dissertation/rest_Arch_style.htm