9

是否可以完全关闭 api explorer 或限制对它的访问?

我注意到我的应用程序中的一些日志来自浏览器执行的失败请求。我的 api 仅由 Android 应用程序使用,因此它们唯一可以来自的地方是 api 资源管理器。此外,api 访问仅限于 1 个 web 和 1 个 android 客户端 ID。

4

3 回答 3

4

很不幸的是,不行。API 资源管理器通过使用与您的 API 关联的发现服务工作,该服务实际上不是您的后端的一部分,因此您无法为这些 URI 指定身份验证或可见性。

Discovery 服务中的方法用于使用您的应用作为基础在APIs Explorerlist应用上生成列表:

发现.apis.list:

your-app-id.appspot.com/_ah/api/discovery/v1/apis

当有人从列表中单击其中一个 API 时,将为此检索完整的发现文档,apiNameapiVersion使用getRestDiscovery 服务中的方法:

发现.apis.getRest:

your-app-id.appspot.com/_ah/api/discovery/v1/apis/{apiName}/{apiVersion}/rest

于 2013-03-13T20:13:03.630 回答
1

如果您正在寻找阻止 API 执行的方法,请查看Cloud Endpoints:控制谁可以通过 API Explorer 执行 API

于 2017-03-01T19:42:15.493 回答
0

端点使身份验证变得容易,您可以获得当前用户。您应该使用身份验证来确保人们不会弄乱您的私人 API - 否则人们可能会追踪您发送的帖子类型或获取请求 - 身份验证始终是一个好主意,而不是试图让您的 API 保密。

如果您正在构建一个秘密产品并且您不希望您的竞争对手发现,您也许可以在后端和您的客户端上使用一些混淆方法,这使得 api 不可读。

同样,弄乱您的 api 的用户不应该破坏您的数据库 - 或者如果它确实 - 它应该只为愚蠢的用户破坏它。在您的客户端中有关于如何使用 api 的逻辑以便后端不会中断是一个坏主意 - 后端 api 应该照顾好自己,而不是担心它们如何或为什么使用以及谁用于什么目的。

于 2014-09-30T22:42:47.763 回答