我需要公开一个需要4个参数的rest api,截至目前。我有两个选择:
1) GET request with 4 query params
2) POST request with an Object passed that encapsulates 4 parameters.
如果我使用case 1)
,那么如果将来需要发送更多参数,那么随着查询参数的增加会使URL变得冗长。如果我使用case 2)
,则会违反休息准则,因为POST仅用于创建/更新。
请告诉我这种情况下最好的方法。
答案 0 :(得分:0)
如果您需要传递长参数或二进制参数,您通常会使用HTTP POST请求,并在POST正文中包含参数。
通常,GET请求应该是只读查询;他们不应该改变服务器及其数据的状态。要创建,更新和删除数据,请使用POST请求。 (当需要复杂参数时,POST也可用于只读查询。)
参考:http://rest.elkstein.org/2008/02/more-complex-rest-requests.html
此外,您可以在此处参考:What is the best way to design a HTTP request when somewhat complex parameters are needed?
答案 1 :(得分:0)
过滤参数也可以作为标题参数在get请求中发送。
此外,如果有必要发送更多请求参数不会造成伤害。