为什么api方法名称不能包含下划线?

问题描述:

我的方法名称从some_method转换为apiname.resource.somemethodgapi.client.apiname.resource.somemethod。例如:为什么api方法名称不能包含下划线?

@endpoints.method(messages.VoidMessage, messages.VoidMessage, 
name='resource.some_method', path='resource/some_method') 
def resource_some_method(self, request): 
    pass  

我还测试了命名方法,其中有几个下划线。

这可以停止吗?

+0

你介意我是否从你的问题中删除“evilly”?这既不准确也不相关。 – bossylobster 2013-05-08 20:54:30

不可以。Google的API基础架构有严格的命名准则,这些都由SDK代码“强制执行”。部署应用程序时,您的API定义将被转换为一个API配置文件,该文件将发送到Google的API基础架构以启动您自己的基于发现的API。

之前创建这个API的配置,这些名称是由endpoints.message_parser库(从endpoints.api_config调用)parsed,以确保您的名称符合规范。特别是:

split_name = re.split(r'[^0-9a-zA-Z]', name) 
normalized = ''.join(
    part[0].upper() + part[1:] for part in split_name if part) 

你可以*地绕过这个代码,并生成自己的API的配置,但这些名字将被谷歌的API架构,当你部署被拒绝的API部署将失败。