【发布时间】:2015-11-02 18:25:25
【问题描述】:
我有一个页面,其中列出了学校的书籍。用户可以更新书籍、添加新书籍或删除现有书籍。提交表单时必须保存所有操作。
我怎样才能为此映射一个rest API?我可以利用我已经拥有的端点。
更新
PUT /schools/1/books
{
"books": [
{
"id": "1",
"name": "Book 1"
}
]
}
创建
POST /schools/1/books
{
"books": [
{
"name": "Book 2"
},
{
"name": "Book 3"
}
]
}
删除
DELETE /schools/1/books
{
"books": [
{
"id": 2
}
]
}
但是我需要所有东西都在同一个事务上运行,并且提交 3 个请求是没有意义的。
我还考虑创建一个新端点,在此我将创建不存在的书籍、更新存在的书籍并删除请求中不存在的书籍。
所以如果这所学校有Book 1 和Book 2,我可以更新Book 1,创建New Book 并删除Book 2:
PUT /schools/1/batch-books
{
"books": [
{
"id": "1",
"name": "Updated Book 1"
},
{
"name": "New Book"
}
]
}
你们还有其他选择吗?
【问题讨论】: