【问题标题】:Why can't api method names contain underscores?为什么api方法名不能包含下划线?
【发布时间】:2013-04-30 06:11:01
【问题描述】:

我的方法名称从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    

我还通过在中间加上几个下划线来命名一个方法进行了测试。

这可以停止吗?

【问题讨论】:

  • 您介意我从您的问题中删除“邪恶”吗?它既不准确也不相关。

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


【解决方案1】:

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

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

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 基础架构拒绝。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 2023-04-07
    相关资源
    最近更新 更多