比如有一个 model:
pet {
name,
category,
tags, (optional)
}
tag 是可选的,当我用 post 创建的时候,可以不传 tag 这个参数,默认为空。但是当我用 put 更新实体的时候,我有点疑惑了。
根据定义,put 可以用来更新资源,并且包含整个实体的信息。那么是否每次调用 put 的时候都要把所有的参数都带上,包括可选的参数 ?那么我在方法中就要判断每个参数是否都传递了,而在 post 方法中我就不需要这一步了,似乎有点麻烦。
如果想只更新某一部分信息,用 patch 方法,不管是否是可选参数。
我看 swagger 上的例子,put 方法标明了哪些是可选参数,http://petstore.swagger.io/#/pet/updatePet ,那么这似乎和 patch 有点相似了,只更新部分信息,可能是我理解的不太清楚。
不知大家在写 api 的时候是怎么处理这样的情况的,麻烦指点一下。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.