c# - REST API 网址模式
问题描述
我目前正在设计一个 REST API 接口,并试图确定构建调用的最佳方式。
我正在提供在系统中创建记录的能力。但是,可以使用两组不同的数据创建记录,具体取决于哪个系统调用数据。
我正在考虑提供格式的网址
/api/create/auto
/api/create/manual
并使用相同的功能(自动/手动将是路由参数)进行处理,主体包含适当的数据。但是我想知道是否提供格式的 url
/api/createauto
/api/createmanual
并使用两个单独的函数来处理是一种更好的格式。所涉及的处理相当简单,我只是将传入的数据传递给数据库中的两个存储过程之一来完成工作。如果我以第一种方式执行此操作,则必须添加验证以确保仅传递正确的值。
解决方案
REST Api 最佳实践实际上指出端点应该是名词而不是动词。在最佳实践情况下,端点应该是
POST /api/object_name
然后,您可以通过数据正文中的字段指定自动与手动。否则,如果您真的想通过 URL 指定自动或手动,则可以使用查询参数,尽管我认为这实际上不是 kosher。
POST /api/object_name?type=auto
您最好的选择是,可能会将类型添加到 json 正文中(假设您使用的是 json)。所以像
{"type":"auto","data":{data json object}}
推荐阅读
- c++ - 你如何使用这些初始化来制作 unique_ptrs ?
- vba - VBScript 循环直到 [时间限制]
- c# - Automapper - 将上层属性作为参数传递给下层地图
- google-apps-script - 从 Google 电子表格中的链接合并 Google 文档,仅选择其中一些
- javascript - 结合两个过滤器功能
- javascript - 使用图像或 svg 的 javascript 3D 动画
- refresh-token - MSAL 浏览器刷新令牌
- java - 由 JVM 或 Docker 容器衡量的 RAM 使用率差异
- c++ - 当重载类中的运算符时编译器会做什么?
- angular - 无法设置未定义角度的属性“矩阵”