如何将结构化数据发送到检索对象的 REST 端点?应该使用哪个 HTTP 动词?
How to send structured data to a REST endpoint that retrieves objects? Which HTTP verb should be used?
我想构建一个 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
}
]
POST
对此不正确。如果您想坚持 RESTful 最佳实践,则必须对 uri 中的信息进行编码。
请注意,如果您不想这样做,POST
可能会更好,但由于这个问题是关于 REST 最佳实践(而不是一般的 http 服务),POST
是您的前往。
我会简单地将其编码为:
GET /products?name=Computer&categories=1,4
我想构建一个 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
}
]
POST
对此不正确。如果您想坚持 RESTful 最佳实践,则必须对 uri 中的信息进行编码。
请注意,如果您不想这样做,POST
可能会更好,但由于这个问题是关于 REST 最佳实践(而不是一般的 http 服务),POST
是您的前往。
我会简单地将其编码为:
GET /products?name=Computer&categories=1,4