我正在尝试编写一个API,并且很难找到一种将自定义操作添加到资源中的好方法。例如,在我的用户资源中,我希望有操作enabled
和disable
,但是在通常的蓝图分组中,我不能将它们添加到一个组中:
## User [/users/{id}]
### Update a User [PATCH]
...
### Delete a User [DELETE]
...
### Disable a User [PATCH]
....
在这里,Disable a User
和Update a User
都指向同一个URL,这不是我想要的。我希望它们分别生成URL /users/{id}
和/users/{id}/disable
。
在查看其他API源时,其他人不使用命名资源就完成了它,这将提供:
## /users/{id}
### Update a User [PATCH]
...
### Delete a User [DELETE]
...
## /users/{id}/disable
### Disable a User [PATCH]
...
虽然我可以使用这种方法,但我更倾向于使用第一种方法,因为当它被大多数蓝图工具渲染时,它会更干净。
是否存在使用第一种方法进行自定义操作的方法,或者其他人是否有一种更干净的方法来实现相同的事情?
发布于 2014-10-27 23:11:01
在本例中,由于有两个不同的URL,实际上您将得到两个不同的资源。一个资源是用户资源,另一个是禁用用户资源。要在您的API中组织这些资源,可以将这些资源与资源组一起分组。
# Group User Resources
## User [/users/{id}]
### Update a User [PATCH]
...
### Delete a User [DELETE]
...
## Disable User [/users/{id}/disable]
### Disable User [PATCH]
...
这允许您在不同的URL上进行单独的操作,同时将它们绑定在文档中。
https://stackoverflow.com/questions/26586487
复制