私が見た Web API のほとんどの例は、URI を次の形式で示しています。
/api/values/ (returns all records)
/api/value/{id} (returns a specific record)
この URI 規則が気に入らない場合も考えられますが、現在のプロジェクトでは完璧です。しかし、それは私にとってはうまくいかず、これを実現するために何ができたのかわかりません. 私にとっては、単数形でも複数形でもどちらでもかまいません。
コントローラー クラスの名前が ValuesController の場合、Web API は
/api/values/
/api/values/{id}
コントローラー クラスの名前が ValueController の場合、Web API は
/api/value/
/api/value/{id}
ADO.NET Entity Data Model を使用して、モデル デザイナーでいくつかのエンティティを作成しました。すべてに単一の命名規則があります。たとえば、Activity、State、Country、User などです。しかし、EF は複数のデータベース テーブルを作成しているように見えます。
これらのエンティティごとに APIController を作成しました。コントローラーで 2 つの命名規則 (複数形と単数形の両方) を試しましたが、URI で期待される (そして望ましい) 結果が得られません。Web API の複数形と単数形は、何を試しても常に同じです。
参考までに、自動的に作成されるデフォルトの API (ValuesController) を確認しました。すべてのレコードを返すには /api/values/ を指定する必要があり、単一のレコードを返すには /api/values/{id} を指定する必要があります。どちらも複数形であり、デフォルトではそうではなかったはずです。
これは何に影響しますか?複数形と単数形の URI の識別形式を構成/認識するロジックはどこにありますか?