我想构建一个REST端点来检索对象,但我需要将结构化数据作为查询参数(例如列表)发送。我想知道这些数据是否可以作为请求体发送(参见下面的示例)。为了坚持REST良好实践,我该如何处理?我应该使用哪个HTTP动词?
URI:
http://localhost:8080/products
请求正文:
{
"name" : "Computer",
"categories" : [
{
"id" : 1
},
{
"id" : 4
}
]
}
响应:
[
{
"id": 2,
"name": "Computer XP 2040",
"price": 800
},
{
"id": 1,
"name": "HP Computer",
"price": 2000
},
{
"id": 7,
"name": "Smart Computer",
"price": 1200
}
]
答案 0 :(得分:1)
POST
对此不正确。如果您想坚持使用RESTful最佳实践,则必须在uri中对信息进行编码。
请注意POST
如果您不想这样做可能会更好,但由于此问题是关于REST最佳做法(而不是一般的http服务),POST
是您的去到。
我只想将其编码为:
GET /products?name=Computer&categories=1,4