如何解决REST API创建多种资源
我目前正在使用一个API,其中POST请求可能会创建多个资源,具体取决于所传递的资源。举个例子,我有一个Reservation
资源和两个子资源Ancillary
和SpecialRequest
。保留区由6个字符的字母数字字符串唯一标识,Ancillary
由保留区中的唯一ID标识(即,辅助ID仅对于父保留区是已知的)。
因此,要创建一个辅助,我的API端点如下所示:
POST /reservations/{reservationId}/ancillaries/
通常REST指出正在创建的资源(在这种情况下为Ancillary
)是应返回的资源。但是,我的用例比这要复杂得多,因为我的API与之交互的预订系统是旧的,而且有些不可预测。
有些辅助设备(捆绑)实际上创建了多个辅助设备。例如,辅助设备可能是另外两个辅助设备的包装,其成本比您必须购买其他两个辅助设备的成本要低。此外,辅助设备也可能会自动链接到SpecialRequest
。
我想知道我的选择是什么...到目前为止,我提出了以下建议:
- 返回整个
Reservation
,这肯定会包含所有由于辅助创建而创建和/或修改的子资源。这是“最安全”的选项,但这样做无法告诉用户创建了哪个Ancillary
。 - 仅返回创建的
Ancillary
,但是由于API用户极有可能执行GET /reservations/{reservationId}
,因此这种方法可能会使我的API的可用性降低
- 无论辅助类型如何,都返回
Ancillary[]
,尽管这仍然省去了Ancillary
和SpecialRequest
之间的联系。
提前感谢您的想法和投入
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。