如何将结构化数据发送到检索对象的REST端点?应该使用哪个HTTP动词?

时间:2017-10-10 20:12:41

标签: json rest http restful-architecture httpverbs

我想构建一个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
    }
]

1 个答案:

答案 0 :(得分:1)

POST对此不正确。如果您想坚持使用RESTful最佳实践,则必须在uri中对信息进行编码。

请注意POST如果您不想这样做可能会更好,但由于此问题是关于REST最佳做法(而不是一般的http服务),POST是您的去到。

我只想将其编码为:

 GET /products?name=Computer&categories=1,4