我正在使用ASP.NET的WebAPI创建一个Web服务。
似乎ApiController中的方法名称已映射到Uri。
例如,PutProducts添加产品
如果我想要一个执行说...批处理文件的方法,比如ExecuteProcess1();
这不需要返回任何商业价值的任何价值。这是客户随意开火,这适合我的网络服务?该方法应该被称为什么?
答案 0 :(得分:2)
您只需使用任何想要使其运行的HTTP动词即可。但遵循REST Api使用的最佳实践,简单的概念是:
因此:
ExecuteProcess
运行在服务器上创建内容的进程,请使用POST。 答案 1 :(得分:1)
如果方法正在修改服务器上的某些状态(例如更新数据库中的记录,写入文件,......),则应使用POST HTTP谓词。根据此方法正在修改的资源,您可以拥有相应的API控制器:
public class SomeResourceController: Controller
{
public void Post()
{
... do the processing here
}
}
显然,您将使用您正在操作的资源(产品,订单,人员......)替换此控制器名称中的 SomeResource 。
答案 2 :(得分:0)
您可以使用POST或GET,这取决于您尝试更新的内容。但在这种情况下,您应该使用正常的mvc控制器和操作。 WebApi与否,无论如何它们仍然是HTTP请求。
答案 3 :(得分:0)
如果您正在考虑将Process作为资源,那么理想情况下,您将执行POST [假设您正在发布流程名称],否则将使用具有成功流程执行所需的相应Query参数的GET。
更好的方法是启动流程的POST,GET查看流程的状态,如完整,正在进行等。