REST - 发布以获取数据。怎么办呢?

时间:2016-09-26 18:19:41

标签: web-services rest api web asp.net-web-api

根据我的理解,您不应发布以获取数据。 例如,我在一个项目上,我们正在发布以获取数据。

例如,以下内容。

{
   "zipCOde":"85022",
   "city":"PHOENIX"
   "country":"US"
   "products":[
      {
         "sku":"abc-21",
         "qty":2
      },
      {
         "sku":"def-13",
         "qty":2
      }
   ]
}

发帖有意义吗?如果不张贴,怎么办呢?可能有一个或多个产品。

2 个答案:

答案 0 :(得分:1)

实际上HTTP中有一个SEARCH方法,但遗憾的是它适用于webdav。 https://msdn.microsoft.com/en-us/library/aa143053(v=exchg.65).aspx因此,如果您想发送请求的请求正文,那么您可以尝试使用它。

如果你有复杂的搜索,POST就没问题了。复杂的搜索是相对的,我的意思是,你的查询中有不同的逻辑运算符。

当前的那个并不复杂,您可以将非分层组件放入URI的查询字符串中。附加换行符的示例:

GET /products/?
    zipCOde=85022&
    city=PHOENIX&
    country=US&
    filters[0]['sku']=abc-21&
    filters[0]['qty']=2&
    filters[1]['sku']=def-13&
    filters[1]['qty']=2

如果需要,您可以选择不同的序列化格式并将其编码为URI组件。

GET /products/?filter={"zipCOde":"85022","city":"PHOENIX","country":"US","products":[{"sku":"abc-21","qty":2},{"sku":"def-13","qty":2}]}

答案 1 :(得分:0)

一个可能的选择是JSON.serialize您的对象并将其作为查询字符串参数发送到GET。