公共和私人端点应该有单独的API吗?

Nyx*_*nyx 6 php api ajax rest laravel

如果一个网站有一个面向公众的前端消耗API,并且还有一个后端用于具有更强大角色且也消耗API的用户,那么该站点的两个部分应该使用相同的API或不同的API(例如:/ api/v1/resourceName vs/api/admin/resourceName)?

T. *_*nes 7

这实际上取决于你的情况.如果您的私有端点绝对必须保持私有,那么单独的API是唯一的绝对解决方案.一般来说,这似乎有点矫枉过正.对于大多数情况,我建议从一开始就考虑维护单个API并设计具有安全性的私有端点.

单独的API

  • 您必须维护两个代码库,或者至少将私有API的端口部分保存到公共系统.
  • 您必须维护两个生产API系统.
  • 更好的安全性:即使用户密钥/密码等被破坏,公共客户也无法访问API上的私有内部资源,或者面向公众的API处理安全性的方式存在错误.

相同的API

  • 一个代码库和一个服务器.
  • 安全性将更加重要.您必须确保公共客户端无法访问内部资源.安全漏洞或对私有端点安全性的疏忽可能会导致严重问题.