假设有这么一个后台管理页面:
id | name | age | status | action |
---|---|---|---|---|
1 | 张三 | 18 | P | edit/delete |
2 | 李四 | 17 | A | edit/delete |
3 | 王五 | 16 | S | edit/delete |
其中除 ID 栏外,每一个格子都可以直接点击编辑. 比如点击张三,切换为输入框,输入新 name, 鼠标失去焦点,保存改变后的值.
action 栏中的 edit,点击之后跳到 编辑页, 修改所有的信息.
采用 JWT 模式开发. 那么 edit 部分的 API 应该如何设计?
第一种
- PUT /v1/person/name
- PUT /v1/person/age
- PUT /v1/person/status
- PUT /v1/person
第二种
- PUT /v1/person 只提供一个 API,这个 API 处理所有情况,不管是单独的字段还是所有的字段更新
第三种
- PUT /v1/person/status
- PUT /v1/person
提供一个更新所有的字段的 API, 但是如果更新 status 逻辑过于复杂,则把 更新 status 单独抽离,其他的字段单独更新走第二个.
这里我们假设,更新 age/name 不会触发复杂的业务逻辑,但是status 如果变化会触发非常复杂的业务逻辑
应该如何设计 API.
实际上,多数情况下,使用第二种形式,否则api接口会太多。