寻求关于API的REST签名的指导。
为了处理物流,我们希望支持快递包装的运输标签的生成。
其中哪一种更适合于RESTFul来建模这些API。
生成标签API:POST /package/{package-id}/label。
重新生成标签API:POST /package/{package-id}/label/regenerate。
对
生成标签API:POST /package/{package-id}/label?operation=generate。
重新生成标签API:POST /package/{package-id}/label?operation=regenerate。
重新生成API将根据更新的发货日期等为包创建一个新的标签,这些标签作为请求有效负载的一部分传递。
发布于 2022-06-09 15:30:57
只需使用:
POST /package/{package-id}/label
PUT/PATCH /package/{package-id}/label发布于 2022-06-09 18:47:40
如果/package/{package-id}/label是您正在创建的“标签资源”,那么适当的方法可能是PUT。
但是“再生”在这里有点难解释。您能否一次又一次地通过在GET上执行/package/{package-id}/label请求来获取标签。
如果“创建标签”或“重新生成标签”没有副作用(例如打印标签的物理打印机),那么GET可能工作得最好。
如果“创建标签”或“重新生成标签”并不是真正返回标签,而是在不同的系统中造成某种外部影响,那么这样做更像您提到的RPC调用更好。
POST /package/{package-id}/label那么我的问题是,为什么‘产生’和‘再生’之间有区别。听起来你只是做了两次同样的事。你真的需要两个端点吗?系统不能确定之前是否为{package-id}创建了标签
如果系统不知道标签是生成的还是再生的,而且只有客户端可以知道我倾向于使用同一个端点并向请求体添加一些标志,而不是有两个不同的URLS。
https://stackoverflow.com/questions/72560939
复制相似问题