我正在尝试弄清楚是否可以将JSON对象传递给REST API,或者传递多个参数到该API?如何在Spring中读取这些参数?假设URL看起来像下面的示例:
例如1:http://localhost:8080/api/v1/mno/objectKey?id=1&name=saif
是否可以在url中像以下示例中传递JSON对象?
例如2:http://localhost:8080/api/v1/mno/objectKey/{"id":1,"name":"Saif"}
问题:
1)是否可以像示例2那样将JSON对象传递到URL中?
2)如何在示例1中传递和解析参数?
我尝试编写一些方法来实现我的目标,但找不到正确的解决方案?
我试图将JSON对象作为@RequestParam传递
http://localhost:8080/api/v1/mno/objectKey?id=1
发生意外错误(类型=不受支持的媒体类型,状态=415)。不支持内容类型'null'
http://localhost:8080/api/v1/mno/objectKey/id=1
发生意外错误(类型=未找到,状态=404)。没有可用的消息
http://localhost:8080/api/v1/mno/objectKey/%7B%22id%22:1%7D
发生意外错误(类型=未找到,状态=404)。没有可用的消息
@RequestMapping(value="mno/{objectKey}",
method = RequestMethod.GET,
consumes="application/json")
public List<Book> getBook4(@RequestParam ObjectKey objectKey) {
...
}
我尝试将JSON对象作为@Pathvariable传递
@RequestMapping(value="ghi/{objectKey}",method = RequestMethod.GET)
public List<Book> getBook2(@PathVariable ObjectKey objectKey) {
...
}
我创建了这个对象来保存id参数和其他参数,如名称等...
class ObjectKey{
long id;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
}