首页 > 解决方案 > REST API 网址模式

问题描述

我目前正在设计一个 REST API 接口,并试图确定构建调用的最佳方式。

我正在提供在系统中创建记录的能力。但是,可以使用两组不同的数据创建记录,具体取决于哪个系统调用数据。

我正在考虑提供格式的网址

/api/create/auto
/api/create/manual

并使用相同的功能(自动/手动将是路由参数)进行处理,主体包含适当的数据。但是我想知道是否提供格式的 url

/api/createauto
/api/createmanual

并使用两个单独的函数来处理是一种更好的格式。所涉及的处理相当简单,我只是将传入的数据传递给数据库中的两个存储过程之一来完成工作。如果我以第一种方式执行此操作,则必须添加验证以确保仅传递正确的值。

标签: c#rest

解决方案


REST Api 最佳实践实际上指出端点应该是名词而不是动词。在最佳实践情况下,端点应该是

POST /api/object_name

然后,您可以通过数据正文中的字段指定自动与手动。否则,如果您真的想通过 URL 指定自动或手动,则可以使用查询参数,尽管我认为这实际上不是 kosher。

POST /api/object_name?type=auto

您最好的选择是,可能会将类型添加到 json 正文中(假设您使用的是 json)。所以像

{"type":"auto","data":{data json object}}

推荐阅读