如果这个Facebook Graph API很安静

时间:2017-09-11 11:54:03

标签: rest facebook-graph-api restful-architecture

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

https://developer.paypal.com/docs/api/payments/

2 个答案:

答案 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>

一切都是为了方便。