【问题标题】:Naming of Rest APIRest API 的命名
【发布时间】:2016-02-19 06:00:50
【问题描述】:

我知道这不是一个技术性很强的问题。但我需要一些建议。 我知道命名 Rest API 有一些约定。 我需要通过 Asp.Net Web API 创建一个 Rest API。该服务是检索用户位置附近的所有学校。 输入:用户纬度、经度、距离

如何命名 URL。

api/v1/Schools/Near,

api/v1/NearbySchools

我知道使用 GET 更好:api/v1/Schools 但可能将来输入的数量会发生变化,所以最好做成 POST。 发布:api/v1/Schools 但这也有问题。我已经有一个这样的 URL 来创建一个新的学校。

请帮助我。我知道这不是技术问题,但我想遵循惯例。

【问题讨论】:

  • 在整个项目中遵循一个约定。你也可以试试Retrieve/SchoolsNearBY 表示<TypeOfMethod>/<functionality>

标签: rest http asp.net-web-api2 asp.net-web-api-routing


【解决方案1】:

开发人员正在使用不同的模式来制作 REST API。

api/v1/Schools

查询参数符合要求。输入长度有限制。

在这种情况下,带有所需输入的 POST 方法,可以通过请求正文扩展到任意数量的搜索条件。

api/v1/Schools/search

以下是在实践中。

  • /schools - POST - 创建
  • /schools - 获取 - 获取所有学校
  • /schools/{schoolid} - GET - 获取特定学校
  • /schools/{schoolid} - PUT - 更新
  • /schools/{schoolid} - 删除 - 删除学校
  • /schools/search - POST - 根据搜索条件搜索学校

您可以使用HATEOAS 作为您的 REST API 的描述器,以便 API 的使用者具有文档化的结构。

【讨论】:

  • 嗨@VinayVeluri - 感谢您的回复。假设我需要一项操作,让客户将学校标记为“公立”或“私立”。它基本上是一个“编辑”动作,但它并没有真正编辑整个“学校”实体。无论哪种方式,我都需要 PUT URL 来进行真正的编辑操作。您对这种类型的 URL 有什么建议。我可以选择:PUT /schools/{schoolid}/public-private,它在 PUT 请求的正文中接收一个简单的值或一个小 jason,还是什么?
猜你喜欢
  • 2017-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-21
  • 2021-07-01
  • 2019-12-05
  • 2020-10-21
  • 1970-01-01
相关资源
最近更新 更多