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

时间:2013-05-06 13:14:18

标签: google-app-engine python-2.7 google-cloud-endpoints

我的方法名称已从some_method翻译为apiname.resource.somemethodgapi.client.apiname.resource.somemethod。例如:

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

我还通过在两者之间用一些下划线命名方法来测试。

可以停止吗?

1 个答案:

答案 0 :(得分:1)

没有。 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部署将失败,因为部署时Google的API基础结构将拒绝这些名称。