区分静态保存和提交 API
Differentiate Save and Submit in Rest API
关于使用 Rest API 将表单数据保存到 MongoDB 的问题。我有三种不同的情况。
- 保存并 return(第一次保存部分数据和 return id 以供将来 return)。
- 提交已保存的数据(第二次,完成表格并做最后提交,以便我可以触发其他工作流程。)
- 直接提交(第一次提交完整表格和returnid,开始工作流程)
对于上述情况,我想出了以下 API 资源
POST --> v1/applications (This will save data and return id)
PUT --> v1/applications/{id} (This will retrieve data using id parameter and update that data)
我的困惑是如何区分 API,是仅保存调用还是最终提交调用,因为我必须在最终提交后开始工作流程。我可以使用下面的一些查询参数来指示提交或保存吗?
POST --> v1/applications?submit=true or false (This will save data and return id)
PUT --> v1/applications/{id}?submit=true or false (This will retrieve data using id parameter and update that data)
或者我们有什么更好的方法来区分保存和提交api?
在RESTFul风格中,query parameter表示有一些与场景不同的东西,这意味着你不能为use action定义一个规则。在 URL 中记录特性比在真实文档中更好(没有人会仔细阅读它......)
我认为在您的情况下可能更好:
POST v1/applications/add/
PUT v1/applications/{id}
顺便说一句,尽量不要一次就完美,好的服务需要检查和维护。
My confusion is how to differentiate both the API, whether it is only save or final submit call, because i have to start work flow after final submission. Can i use some query parameter like below to indicate submit or save?
我认为将该信号编码到请求的正文中会更常见,而不是试图搞砸 URL。
PUT /applications/12345
Version: 1
Status: Draft
PUT /applications/12345
Version: 2
Status: Final
请记住,URI 是资源(又名文档)的标识符。做有趣的工作是传递文档的副作用。参见 Jim Webber。
如果您在 HTML 中执行所有操作,HTML 本身不支持 PUT
,您可能会使用 POST,其中一种用于编辑,另一种用于完成,或者可能是设计用于处理这两种用例的单一表单。
One question, so for first time save or direct submission first time should use POST /applications. Am i right?
这是一个常见的选择,但不是必需的。真正的区别在于——我们是在目标 URL 上创建新资源 吗?
如果是,那么PUT
、POST
、PATCH
都是可能的。
如果不是——如果我们将请求发送到一个服务器资源,希望创建的资源在其他地方,那么 POST
是合适的选择。
关于使用 Rest API 将表单数据保存到 MongoDB 的问题。我有三种不同的情况。
- 保存并 return(第一次保存部分数据和 return id 以供将来 return)。
- 提交已保存的数据(第二次,完成表格并做最后提交,以便我可以触发其他工作流程。)
- 直接提交(第一次提交完整表格和returnid,开始工作流程)
对于上述情况,我想出了以下 API 资源
POST --> v1/applications (This will save data and return id)
PUT --> v1/applications/{id} (This will retrieve data using id parameter and update that data)
我的困惑是如何区分 API,是仅保存调用还是最终提交调用,因为我必须在最终提交后开始工作流程。我可以使用下面的一些查询参数来指示提交或保存吗?
POST --> v1/applications?submit=true or false (This will save data and return id)
PUT --> v1/applications/{id}?submit=true or false (This will retrieve data using id parameter and update that data)
或者我们有什么更好的方法来区分保存和提交api?
在RESTFul风格中,query parameter表示有一些与场景不同的东西,这意味着你不能为use action定义一个规则。在 URL 中记录特性比在真实文档中更好(没有人会仔细阅读它......) 我认为在您的情况下可能更好:
POST v1/applications/add/
PUT v1/applications/{id}
顺便说一句,尽量不要一次就完美,好的服务需要检查和维护。
My confusion is how to differentiate both the API, whether it is only save or final submit call, because i have to start work flow after final submission. Can i use some query parameter like below to indicate submit or save?
我认为将该信号编码到请求的正文中会更常见,而不是试图搞砸 URL。
PUT /applications/12345
Version: 1
Status: Draft
PUT /applications/12345
Version: 2
Status: Final
请记住,URI 是资源(又名文档)的标识符。做有趣的工作是传递文档的副作用。参见 Jim Webber。
如果您在 HTML 中执行所有操作,HTML 本身不支持 PUT
,您可能会使用 POST,其中一种用于编辑,另一种用于完成,或者可能是设计用于处理这两种用例的单一表单。
One question, so for first time save or direct submission first time should use POST /applications. Am i right?
这是一个常见的选择,但不是必需的。真正的区别在于——我们是在目标 URL 上创建新资源 吗?
如果是,那么PUT
、POST
、PATCH
都是可能的。
如果不是——如果我们将请求发送到一个服务器资源,希望创建的资源在其他地方,那么 POST
是合适的选择。