【问题标题】:How do you name a C# method of a controller class which is a Web API?您如何命名作为 Web API 的控制器类的 C# 方法?
【发布时间】:2016-10-07 08:05:39
【问题描述】:

REST API 处理资源,因此实践是将 API 命名为名词(资源的名称),而 Http 方法(动词)应反映 API 执行的操作。 我试图了解这是否也适用于命名控制器类的方法。我正在使用 Web API 2,它将使用 OWIN 自托管。 C# 中控制器方法的命名约定应该是什么?

例如,如果我需要通过 Id 获取产品,我知道 uri 看起来类似于 /api/products/id。控制器方法呢?方法名应该包含动词吗?

Route("api/products/{id}")]
[HttpGet]
public IEnumerable<Product> FindProduct(string id) { ... }

【问题讨论】:

  • 方法名是可以的,其实这并没有暴露在客户端,所以不用担心

标签: c# rest asp.net-web-api2 naming-conventions


【解决方案1】:

我想说“GetProduct”在这里是最明显的。 FindProduct 听起来像“更多工作”,例如,如果您有 ID 以外的标准。您的里程可能会有所不同 - 只是我的看法。

一般来说,您可能希望像命名任何其他方法一样命名这些方法。我不确定我是否能合理地想到不使用动词的方法名称有什么好的用途——通常在名称的前面。方法,就其本质而言,做事,如果没有动词,你很难称它们为有意义的东西。 编辑:还有 To、As 等。

【讨论】:

  • 我同意您对方法名称的评论,即没有动词就没有意义。这种情况下一般怎么做?我不认为我是第一个进入这个的人;-)
  • @tyrion 我对 ASP.NET 中的不同项目并没有真正的丰富经验,但我见过的唯一一件事就是,为了命名方法,“忘记“它们与控制器、Web API 和路由有任何关系,只要按照与任何其他地方相同的约定,继续调用它们看起来合乎逻辑的任何东西。毕竟,这些方法本身并没有什么特别之处。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-19
  • 1970-01-01
  • 2013-11-19
相关资源
最近更新 更多