私は、PHPとApacheを使用して、いくつかの基本的な安らかなWebサービスを開発しています。親エンティティ名を提供するURLを構築する必要があるかどうかは疑問です。RESTful WSでは、親リソース名をURLに提供する必要がありますか?
私は2つのエンティティを持っています。国と都市としましょう。私は現在、都市を取得、作成、更新、または削除するためのWSを提供していますが、APIは WS経由での操作をサポートしません。私はのmod_rewriteを使用してURLを再マッピングしていると私は都市を操作するためのAPIで以下のURLを提供しています:
. GET /api/countries/<country_id>/cities cities of country with id <country_id>
. GET /api/countries/<country_id>/cities/<city_id> city with id <city_id>
. POST /api/countries/<country_id>/cities add a city to country with id <country_id>
. PUT /api/countries/<country_id>/cities/<city_id> update the city whose country has id <country_id>
. DELETE /api/countries/<country_id>/cities/<city_id> delete city ...
私はこれらのURLで慎重に探し始めたと私は1つの親エンティティの名前とIDを提供する必要があるかどうか混乱しましたか否か。私は大きな前提を定めており、複数の都市に割り当てることができない、つまり多対多の関係ではないということです。これを仮定すると、より短いURLパターンが多くのAPI関数に提供されると思います。クライアントは、彼が送信する場合、それは十分だろういくつかの都市を削除したい場合例:
. DELETE /api/cities/14
私は都市が一つの国に属していることを知っており、クライアントが行う前に、国のIDを確認する必要はありません。要求。
大部分のURLは、最初のものを除いて、この短い種類のURLに変換できます(すべてのcountrieの都市を取得します)。
これはWebサービスを初めて開発したものですが、あまり読んでいないので誤解している可能性があります。アドバイスをお願いしますか?ありがとう、私の初歩的な英語には申し訳ありません。
EDIT1:「APIのURLでエンティティの関係をどのように処理すればよいですか」という質問が一般化できると思います。