繁体   English   中英

Rest API->将json字符串作为参数值传递

[英]Rest API -> passing json string as parameter value

是否建议在REST API中将JSON字符串作为参数值传递? 这是我要发送的数据:

http://127.0.0.1:8000/v1/product/?productName=&metrics = {“内存”:2,“磁盘空间”:10}

在这里,可以将指标的值作为JSON值传递吗?

最初,我尝试在主体中传递指标JSON值。 由于不支持/推荐标准,因此我将其删除。

是否建议在REST API中将JSON字符串作为参数值传递?

REST是一种体系结构样式,它不执行(甚至定义)任何将JSON字符串作为参数值传递的标准。


如果要在查询字符串中发送JSON,则必须先对其进行URL编码

/v1/products?productName=&metrics=%7B%22memory%22%3A2%2C%22disk_space%22%3A10%7D

或者,您可以将参数重新设计为:

/v1/products?productName=&metrics.memory=2&metrics.diskSpace=10

如果URL 太长 (或者查询变得太复杂而无法在查询字符串中表达),则您可能需要考虑使用POST而不是GET ,然后在请求有效负载中发送JSON:

POST /v1/products/search HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "productName": "foo",
  "metrics": {
    "memory": 2,
    "diskSpace": 10
  }
}

不建议在GET请求中发送JSON值。 您可以做到,但指标json可能很长,任何人都可以读取内容。

您应该使用POST请求在正文中发送诸如productNamemetrics参数。

您应该参考此答案以获取详细说明。

要使用内容类型应用程序Json,请在下面的行中使用

request.AddParameter("application/json", "{\n\t\"lastName\":\"gaurav.sablok@agarwalpackers.com\"\n}", ParameterType.RequestBody);

与“ RestSharp”命名空间一起使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM