REST API Url模式

时间:2018-05-16 16:25:39

标签: c# rest

我目前正在设计REST API接口,并且正在尝试决定构建调用的最佳方法。

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

我正在考虑提供格式为

的网址
/api/create/auto
/api/create/manual

并使用相同的函数(auto / manual将是一个路由参数)来处理,正文包含适当的数据。但是我想知道是否提供格式为

的网址
/api/createauto
/api/createmanual

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

2 个答案:

答案 0 :(得分:4)

REST Api最佳实践实际上指出端点应该是名词而不是动词。在最佳实践案例中,端点应为

  

POST / api / object_name

然后,您可以通过数据正文中的字段指定auto与manual。否则,如果你真的想通过URL指定auto或manual,你可以使用查询参数,虽然我不认为它实际上是犹太教。

  

POST / api / object_name?type = auto

你最好的选择,将probaby添加到json体型(假设你正在使用json)。像

这样的东西
{"type":"auto","data":{data json object}}

答案 1 :(得分:1)

您可以通过使用Route属性为每个功能设置路由,以第一种方式设置您的网址并仍指向2个不同的功能。

[Route("create/auto")]
public void AutoCreate(){//do something...}

Link to Microsoft docs on Attribute Routing