2017-10-01 17 views
0

ユーザー(管理者)が複数のプレイスを持つことができる場合、プレースは複数のユーザー(非管理者)が管理でき、プレースは多数のテーブル、多くの顧客、セクションなど:RESTful API URIの設計:階層

   --> Table 
User <--> Place --> Customer 
       --> Section 

Notation: <--> many to many 
      --> one to many 

このRESTful API実装は、RESTガイドラインに従ってうまく設計されていますか?階層レベルを使用してAPIを実装するかどうかはわかりません。括弧の間にある各エンドポイントのHTTPの有効な方法を含む

RESTのAPI、:

/api/places       [GET, POST] 
/api/places/<name>      [GET, PUT, DELETE] 
/api/places/<name>/customers   [GET, POST] 
/api/places/<name>/customers/<id>  [GET, PUT, DELETE] 
/api/places/<name>/tables    [GET, POST] 
/api/places/<name>/tables/<id>   [GET, PUT, DELETE] 
/api/places/<name>/users    [GET, POST] 
/api/places/<name>/users/<username> [GET, PUT, DELETE] 

答えて

0

RESTは、あなたのURLの階層が定義されるべきかという点でガイドラインを持っていません。

あなたのURLのデザインは、人間にあなたのAPIがどのように構造化されているかのアイデアを与えるほど十分に見えます。

+0

階層を削除して、代わりに/ api/customers、/ api/usersなどを使用して、httpリクエストの「場所」参照を渡すことは可能でしょうか? –

+1

そうです、それも完全に可能です。要点は、これにアプローチするためのさまざまな方法があり、ベストプラクティスに同意していないことです。あなたがこれを本当に初めて知っていれば、既存のハイパーメディアフォーマット(HALやサイレンなど)を使用していることを確認し、既存のAPIと同様のデザインに従ってください。 – Evert

関連する問題