正确的动词和响应应该是什么,以接受批量PUT创建并返回多个位置?Location头似乎只支持一个单一的Uri。
我最初认为可以使用PUT进行批量创建,并返回包含Uri列表的字符串数组,但在查看规范时,似乎不支持这种方法,但也不是完全清楚。
多个Location头是否可行作为替代方法?
有什么建议吗?
不可以,你只能有一个Location头字段(从规范中可以清楚地看出)。
话虽如此,PUT方法用于创建/更新单个资源。看起来你正在为它设计之外的东西使用它...
根据规范,PUT方法只能创建一个资源:
PUT方法请求使用请求消息有效载荷中的表示定义的状态来创建或替换目标资源的状态。
(https://www.rfc-editor.org/rfc/rfc7231#section-4.3.4)
然而,使用不同动词(例如POST)的请求可以创建多个资源并返回201 Created状态。根据规范:(https://www.rfc-editor.org/rfc/rfc7231#section-6.3.2)
因此,在对例如POST请求的多个已创建资源返回201响应时,返回多个URI是可以的,但Location标头只能包含一个URI。