控制器端点命名约定

Controller Endpoint Naming Convention

我有一个控制器端点,我需要命名约定方面的帮助。

基本上,端点应该通过他们的 Id/Email(在请求的 url 中发送)找到客户。因此我需要有两个端点,一个用于 users/{id},一个用于 users/{email}.

问题是,以上方法行不通,因为路线完全相同。

我所做的是将 users/{email} 路线替换为:

users/get-by-email/{email} 并将 get by id 路由保留为:users/{id}

谢谢

您似乎正在创建某种 REST API 来与存储的数据进行交互。在 REST 中,您正在处理的信息称为 资源 。您有 users 资源和 emails 资源。我的建议是您可以有一个 users/{id} 端点和 emails/{email} 端点,这将 return 必要的信息。此外,您还可以使用 users/{id}/emails,这将 return 特定用户的电子邮件地址等。明智地命名端点的目的是为了清晰和不言自明。

最深入的讨论:Fielding, R. Representational State Transfer (REST)