是否可以完全关闭 api explorer 或限制对它的访问?
我注意到我的应用程序中的一些日志来自浏览器执行的失败请求。我的 api 仅由 Android 应用程序使用,因此它们唯一可以来自的地方是 api 资源管理器。此外,api 访问仅限于 1 个 web 和 1 个 android 客户端 ID。
是否可以完全关闭 api explorer 或限制对它的访问?
我注意到我的应用程序中的一些日志来自浏览器执行的失败请求。我的 api 仅由 Android 应用程序使用,因此它们唯一可以来自的地方是 api 资源管理器。此外,api 访问仅限于 1 个 web 和 1 个 android 客户端 ID。
很不幸的是,不行。API 资源管理器通过使用与您的 API 关联的发现服务工作,该服务实际上不是您的后端的一部分,因此您无法为这些 URI 指定身份验证或可见性。
Discovery 服务中的方法用于使用您的应用作为基础在APIs Explorerlist
应用上生成列表:
your-app-id.appspot.com/_ah/api/discovery/v1/apis
当有人从列表中单击其中一个 API 时,将为此检索完整的发现文档,apiName
并apiVersion
使用getRest
Discovery 服务中的方法:
your-app-id.appspot.com/_ah/api/discovery/v1/apis/{apiName}/{apiVersion}/rest
如果您正在寻找阻止 API 执行的方法,请查看Cloud Endpoints:控制谁可以通过 API Explorer 执行 API
端点使身份验证变得容易,您可以获得当前用户。您应该使用身份验证来确保人们不会弄乱您的私人 API - 否则人们可能会追踪您发送的帖子类型或获取请求 - 身份验证始终是一个好主意,而不是试图让您的 API 保密。
如果您正在构建一个秘密产品并且您不希望您的竞争对手发现,您也许可以在后端和您的客户端上使用一些混淆方法,这使得 api 不可读。
同样,弄乱您的 api 的用户不应该破坏您的数据库 - 或者如果它确实 - 它应该只为愚蠢的用户破坏它。在您的客户端中有关于如何使用 api 的逻辑以便后端不会中断是一个坏主意 - 后端 api 应该照顾好自己,而不是担心它们如何或为什么使用以及谁用于什么目的。