在REST API中传递参数的最佳选择是什么 - POST类型的方法?

问题描述:

我正在设计一个使用POST方法创建资源的REST API。 这个创建调用接受4个参数,这些参数是强制性的,但在逻辑上彼此不相关。 所以,我有两个选项接受这些4输入参数 -在REST API中传递参数的最佳选择是什么 - POST类型的方法?

  1. 的请求作为JSON对象部分
    OR
  2. 在查询参数为(POST/API/someresource参数1 =值1 &形式? param2 = value2)

哪个选项最适合?

是否有提示选择基于以上的事实两种方法中的任何一个准则 -

  1. ,这些都是强制性的参数,所以我们不应该使用的查询参数?
  2. 这些不是逻辑上相关的,而只是创建资源的输入;所以我们可以使用查询参数?

/api/someresource?param1=value1&param2=value2很可能是GET请求,而不是请求。 如果您的请求更改服务器上的某个状态,请使用POST。如果它只有一个读操作使用GET

+0

你是建议遵循约定还是有更多的呢? – PST

+0

简短的回答,都:)它使API更清晰和易于理解,但另外可能有相同的端点可以链接到两个或多个方法的情况)/ api/example可以对POST,GET,PUT,DELETE做出不同的反应。 。所以要删除一个项目,你不需要像/ api/deleteItem这样的其他端点。您可以使用/ api/item并在删除请求时删除该项目:) :) – user3811473

+0

是的,我同意传统方法。由于这四个输入参数在逻辑上不相关,所以我不想将它们合并到一个输入对象下并在服务器端接受它。 – PST