我有一个RESTful路由,它适用于资源的数组字段,例如:
PUT /:id / mylist
当我执行PUT时,如果输入为空,则抛出错误。也就是说,如果传递一个空数组。我要求数组中至少有一个元素。因此,如果资源有一个包含9个元素的数组,并且路由被调用到PUT 3,那么这三个替换现有的9个。
但你不能传递任何元素,因为那会抹掉九个而不留下任何东西。
但是没有允许的元素 - 在我看来,允许在PUT中“清除”数组是错误的,并且只应这样做:
DELETE /:id / mylist
我错了吗?都还好吗?一个人比另一个更受欢迎吗?
答案 0 :(得分:0)
我认为在列表资源上执行DELETE会推断列表不再存在,并且对URL的未来GET请求将返回404。
但是,使用空列表执行PUT会导致将来的GET请求返回200和空列表(无论如何表示)。
我想说两者都是有效的方法,它只取决于资源最自然的语义。