[英]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
请求在正文中发送诸如productName
和metrics
参数。
您应该参考此答案以获取详细说明。
要使用内容类型应用程序Json,请在下面的行中使用
request.AddParameter("application/json", "{\n\t\"lastName\":\"gaurav.sablok@agarwalpackers.com\"\n}", ParameterType.RequestBody);
与“ RestSharp”命名空间一起使用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.