生成发现文档时出现503服务不可用错误
我正在使用谷歌云端点,想生成一个发现文档,以便创建一个iOS客户端库,并测试我的端点。我按照文档中的说明,尝试用这个命令来实现:
endpointscfg.py gen_discovery_doc -o . -f rpc appfile.ApiClass
这里的 appfile
和 ApiClass
需要替换成真实的名称。
当我运行这个命令时,我得到了:
urllib2.HTTPError: HTTP Error 503: Service Unavailable
为什么生成发现文档的时候需要访问互联网呢?我为什么会收到这个错误?我该怎么解决这个问题?
附注:我已经检查过我的代码,确认没有基本错误,比如消息类中的其他类型、错误的主机名等等,但这些都不是问题所在。
2 个回答
1
在生成发现文档时遇到类似的问题,
当某些东西不符合预期时,就会出现503错误。在我的情况下,是因为API类的定义不正确。
确保@Api()的定义以小写字母开头,否则会返回503错误。
例如:
//@Api(name = "thisMustBeLowerCase") otherwise client libraries wont compile.
@Api(name = "sampleEndpoint")
public class SampleEndpoint {...}
希望这能帮到你
1
回复:“为什么生成发现文档时需要访问互联网?”
你的API类会被传递给 ApiConfigGenerator.pretty_print_config_to_json
这个方法,用来创建一个描述符,这个描述符定义了一个基本的API配置。然后,这个描述符会被发送到一个网络API,这个API连接到谷歌的API基础设施,从基本的API配置中生成一个发现文档。
回复:“为什么我会收到这个错误?”
你的API配置可能是无效的,这通常是因为API类的定义不正确。当你尝试运行或部署应用程序时,有没有出现任何错误或堆栈跟踪信息?如果没有,可能是生成发现文档的网络服务代码中有个bug,我很乐意帮你查一下。