【发布时间】:2016-03-16 12:41:51
【问题描述】:
假设我有以下课程:
company
user
address
公司对象可以包含用户和地址, 用户对象包含地址
公司可以独立存在,但用户和地址始终是公司或用户的一部分(UML 措辞中的组合):
company ->
addresses
users ->
addresses
现在我想为 POST(插入)和 PUT(更新)请求使用正确的 REST 结构。正确的做法是什么?
变体 1:
// insert address:
POST /api/company/{companyId}/addresses
POST /api/company/{companyId}/users/{userId}/addresses
// update address:
PUT /api/company/{companyId}/addresses/{addressId}
PUT /api/company/{companyId}/users/{userId}/addresses/{addressId}
变体 2:
// insert address:
POST /api/address // companyId, userId etc. as parameter
// update address:
PUT /api/address/{addressId}
我个人的直觉是使用变体 1 进行创建 (POST) 和变体 2 进行更新 (PUT),因为变体 1 在创建时看起来“更干净”,但更新变体 2 会更好,因为它不需要parentId(公司或用户)
【问题讨论】:
标签: rest