公共和私有端点是不是应该有单独的 API? [关闭]

Posted

技术标签:

【中文标题】公共和私有端点是不是应该有单独的 API? [关闭]【英文标题】:Should there be separate APIs for public and private endpoints? [closed]公共和私有端点是否应该有单独的 API? [关闭] 【发布时间】:2013-07-27 10:04:48 【问题描述】:

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

【问题讨论】:

您的体验如何,我现在在两者之间做出了同样的选择,请分享您的体验。 【参考方案1】:

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

独立的 API

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

相同的 API

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

【讨论】:

@Brian,你个人是如何处理它的,或者你最喜欢的方法是什么,或者你对这两种方法的体验如何 是的,很高兴听到更多关于其他人的经验。

以上是关于公共和私有端点是不是应该有单独的 API? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在不涉及 Android 客户端应用程序的开发人员的情况下为某些网站构建公共/私有 API [关闭]

我应该测试私有方法还是仅测试公共方法? [关闭]

如何使 azure redis 服务的公共链接和私有端点链接同时工作

使用 AWS api 网关 + lambda + Nodejs 的私有和公共 ip

为 ecs 集群设置端点/url

API管理和最佳实践