我正在使用以下技术/方法来实现REST API:
我想实现身份验证端点,它应该以JSONAPI格式通过POST请求接收用户名和密码,并以JSONAPI格式返回JWT token 。
但是我看到有些矛盾不允许我100%RESTful:
我们将其命名为端点
/tokens
,因为它实际上创建了 token 。响应也将是tokens
类型的资源,例如:{
"data": {
"type": "tokens",
"attributes": {
"value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEifQ.ivJ5P23wqVo3w31flg3aOu7er--Ijght_RrBf_MuqsU",
}
}
}
但是请求如何呢?
username
和password
是用户的属性,但应将其发送到/tokens
端点。如果我将users
资源发送到/tokens
端点,则没有太大意义。有没有办法解决这个问题,遵循JSONAPI并保持API有意义?
最佳答案
为什么不? REST并不强制您仅将用户发送到用户资源。当然,当对用户资源进行CRUD操作时,将通过用户资源终结点执行此操作。
但是要生成 token ,将用户资源发送到 token 端点是完全合理的。