在我们的API中,应该可以获取某些对象的所有元数据(可以超过1000个ID)。但端点应该如何?
可以使用以下正文制作POST api/objects/getmetadata
吗?
体:
{
"Objects":[
{
"Id":23232,
"Id":3243,
"Id":3243,
...}
]}
答案 0 :(得分:2)
如果您可以提供一些识别ID的参数,请使用GET
这样的查询参数:
GET /customers?minId=1000&maxId=2000
or
GET /customers?minSalary=500
如果您只想对网址的一个网段进行分层过滤,也可以使用矩阵参数。
GET /api/objects;minId=1000/metadata
如果这是不可能的,并且您需要传递可能1000个ID的完整列表,POST
绝对有效,但您应将其视为在服务器上创建新资源的请求:
POST /api/metadata-search
{ "objects" : ... }
服务器应该返回新创建的资源:
HTTP/1.1 201 Created
Location: /api/metadata-search/4711
这样,结果具有GET
的优点,可以缓存,加入书签等。