我正在编写的API中有一个端点,用于返回用户Facebook好友的过滤列表。用户在调用此端点的移动应用上向Facebook进行身份验证,因此access_token
存储在移动应用中,而不是存储在API的数据库中。
Endpoint: /users/:id/friends
Parameters: access_token (the requested user's Facebook access_token)
Return: A list of the user's Facebook friends who have the app installed
该操作不会修改任何数据;它只是返回过滤后的列表。但是,由于需要额外的参数(access_token
),这意味着GET请求不符合API的路由结构,因为没有其他GET路由附加额外的参数。
以下哪项HTTP请求适合此操作?
GET /users/:id/friends/:access_token
GET /users/:id/friends?access_token=<token>
POST /users/:id/friends (passing 'access_token' as a POST param)
答案 0 :(得分:3)
我绝对不会将其作为POST,因为您正在请求资源,而不是修改它。它可能不完全符合Rail的RESTfulness,但我认为它比POST请求资源要好得多。
您还可以在/users/:id/friends?access_token=<TOKEN>
上进行GET,以便更贴近您。