Facebook有一个API来获取你的照片:
GET graph.facebook.com
/me/photos
/ me /是登录用户身份的快捷方式。是否将状态引入会话,因此是否安静?
这样做会不会更加安宁:
/user/1234/photos
然后有一些安全层,以确保只有具有相应令牌的用户才能访问该URL?
https://developers.facebook.com/docs/graph-api/using-graph-api
注意到其他一些地方使用这种模式。例如:
条纹执行此操作以获取所有优惠券:
GET https://api.stripe.com/v1/coupons
Paypal为所有付款执行此操作:
GET /v1/payments/payment
答案 0 :(得分:3)
GraphQL并不安宁,我试着总结一下here。
/me
并不一定会引入状态,因为me
的ID可能位于标头中,因此服务器端仍然可以是无状态的。
是否将状态引入会话,因此就是这样 宁静?
事实上,无国籍状态是休息的约束,所以你必须将你的问题改写为" ...因此不宁静"
但REST很大程度上依赖于URI,因此这个快捷方式规避了URI中的透明度,根据宁静的原则,这不是最好的主意。
答案 1 :(得分:1)
REST是一种在计算机系统之间提供互操作性的概念/方法/方法。
REST不是一个标准,在严格的法规方面得到委员会/组织的批准。
虽然存在架构限制,建议,不成文规则,常见解决方案,但您无法确认是休息还是不休息。每个人都认为它的服务更好。
图谱API并不完全是REST,它们只是一些不同的东西/含义。
与FB /me
相关,他们说:
/ me节点是一个转换为user_id的特殊端点 访问令牌所在的人(或Facebook页面的page_id) 目前用于进行API调用。
由于这个URI依赖于经过身份验证的用户,它有什么问题?
与PayPal相关,我认为您预先/v1/payments/payment
代替/v1/payments/35/payment
,但部署到其他客户的相同应用将为/v1/payments/69/payment
或注销/v1/user/35/logout
。< / p>
一切都是为了方便。