PHP と apache を使用していくつかの基本的な安らかな Web サービスを開発していますが、親エンティティ名を提供する 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 を慎重に調べ始めましたが、親エンティティの名前と ID を提供する必要があるかどうかについて混乱しました。私は、都市を複数の国に割り当てることはできない、つまり多対多の関係ではないという大きな仮定を立てています。これを仮定すると、多くの API 関数に短い URL パターンを提供できると思います。たとえば、クライアントが都市を削除したい場合は、次のように送信すれば十分です。
. DELETE /api/cities/14
都市が 1 つの国に属していることはわかっており、クライアントはリクエストを行う前に国 ID を調べる必要はありません。
最初の URL (すべての国の都市を取得する) を除いて、ほとんどの URL はこの短い種類の URL に変換できます。
Web サービスを開発するのはこれが初めてで、それについてあまり読んでいないので、おそらく何か誤解している可能性があります。アドバイスをお願いできますか?初歩的な英語で申し訳ありません。
EDIT1: 質問は「API URL でエンティティ関係を処理するにはどうすればよいですか?」で一般化できると思います。