Web services RESTWeb服务中的操作处理
我有一个web应用程序,用户可以上传可以由后端处理的样本。每个示例可以有一个或多个不同类型的文件。一旦上传了有关样本的信息,用户可以要求立即或稍后对样本进行分析(在某些情况下,分析可能需要数小时)。后端基于REST服务 如何告诉后端启动分析?REST原则之一是URL应该基于名词 所以我不能用Web services RESTWeb服务中的操作处理,web-services,rest,architecture,Web Services,Rest,Architecture,我有一个web应用程序,用户可以上传可以由后端处理的样本。每个示例可以有一个或多个不同类型的文件。一旦上传了有关样本的信息,用户可以要求立即或稍后对样本进行分析(在某些情况下,分析可能需要数小时)。后端基于REST服务 如何告诉后端启动分析?REST原则之一是URL应该基于名词 所以我不能用 /startAnalysis?sampleId=55&startTime=now 取消分析怎么样 /cancelAnalysis?sampleId=57 我认为您提到的REST原则实际上只用于G
/startAnalysis?sampleId=55&startTime=now
取消分析怎么样
/cancelAnalysis?sampleId=57
我认为您提到的REST原则实际上只用于GET URI。GET URI应该是名词,因为您只是请求一个资源,可能带有参数。对于PUT或POST uri,它们应该是动词,因为它们会导致状态变化。理论: 实际上,您“允许”使用API调用发送非资源的响应,它们被称为操作,在处理REST操作时,您必须使用动词而不是名词 例如,将100欧元转换为中国日元的REST API:
`/convert?from=EUR&to=CNY&amount=100`
因此,您的REST操作startAnalysis
和cancelAnalysis
是有效的
我建议您阅读(免费电子书),这是一本关于RESTAPI设计的简短介绍。它还包括休息动作
这种做法:
您还可以想象“开始分析”是您的分析资源状态的一部分。您可以使用PATCH或PUT来更新分析资源的状态,而不是使用操作
更详细的解决方案可以是: