我有一个 Web 应用程序,用户可以在其中上传可由后端处理的样本。每个样本可以有一个或多个不同类型的文件。一旦有关 sample 的信息上传,用户可以立即或稍后请求对 sample 进行分析(在某些情况下,分析可能需要数小时)。后端基于 REST 服务。
我如何告诉后端开始分析? URL 应该基于名词的 REST 原则之一。
所以我不能使用
/startAnalysis?sampleId=55&startTime=now
取消分析怎么办?
/cancelAnalysis?sampleId=57
最佳答案
理论:
实际上,您“允许”使用 API 调用来发送不是资源的响应,它们被称为 行动 在处理 REST 操作时,您必须使用动词而不是名词。
例如,将 100 欧元转换为人民币的 REST API:
`/convert?from=EUR&to=CNY&amount=100`
因此您的 REST 操作
startAnalysis
和 cancelAnalysis
是有效的。我建议你阅读 Web API Design (免费电子书)来自 apigee这是对 REST API 设计的简短介绍。它还涵盖 REST 操作。
实践:
您还可以想象“分析的开始”是分析资源状态的一部分。您可以使用 PATCH 或 PUT 来更新分析资源的状态,而不是使用操作。
更详细的解决方案可能是:
关于web-services - 处理 REST Web 服务中的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16571884/