我见过的大多数 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 实体数据模型在模型设计器中创建了多个实体。都有一个单一的命名约定。例如,Activity、State、Country、User 等。尽管如此,EF 似乎无论如何都创建了多个数据库表。
我为这些实体中的每一个创建了 APIControllers。我已经用我的控制器尝试了 2 种命名约定 - 复数和单数,但我没有看到 URI 的预期(和期望)结果。无论我尝试什么,复数和单数 Web API 总是相同的。
仅供参考,我刚刚检查了自动创建的默认 API(ValuesController)。要返回所有记录,我必须指定 /api/values/ 并返回单个记录,我必须指定 /api/values/{id} - 两者都是复数,我确信默认情况下不是这样。
这有什么影响?为复数和单数配置/识别区分形式的 URI 的逻辑在哪里?