问题描述
我正在使用Cloud Run和Endpoints托管的API,并且只是在Endpoints中设置开发人员门户。我正在尝试使“尝试此API”部分正常工作,但这只是给了我Your client does not have permission to get URL <code>/</code> from this server.
消息,使其看起来好像未经身份验证。我看到了这篇文章:GCP Endpoint “Try this API” authorization URL
除非我公开API,否则看起来无法使用此功能?还有其他人知道吗?
解决方法
是的,通常来说,端点必须是公共的,以便您使用站点中的“尝试此API”面板。考虑到用户可能不会通过身份验证,这就是为什么它需要公开的原因。
但是,根据官方文档Trying out the API,如果您使用API密钥或身份验证供开发人员访问门户,则可以配置“尝试使用此API”以正常工作而无需公开。只要您已经在应用程序中完成了以下先决条件,就可以按照官方文档中提供的步骤进行操作。
- 您必须已经将API部署到App Engine标准环境。
gcloud app deploy
命令会在appspot.com
域上为您的API自动创建一个DNS条目,以便Endpoints Portal可以访问它。 - 如果您的API需要API密钥:请检查here(对于Java)和here(对于Python),以了解如何注释您的代码。
- 如果您的API需要身份验证:请检查here(对于Java)和here(对于Python),以了解如何注释您的代码。
总而言之,一旦您遵循了官方教程,应该就可以配置“尝试此API”。