首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >V2多类API错误应用程序引擎标准

V2多类API错误应用程序引擎标准
EN

Stack Overflow用户
提问于 2017-01-21 04:29:56
回答 1查看 202关注 0票数 1

错误: ApiConfigurationError:试图用不兼容的多个类实现服务回送,版本v2。有关如何实现多类API的示例,请参见docstring ()。

代码:

代码语言:javascript
复制
import logging
import endpoints
from protorpc import message_types
from protorpc import messages
from protorpc import remote

class EchoRequest(messages.Message):
   content = messages.StringField(1)

class EchoResponse(messages.Message):
    content = messages.StringField(1)

ECHO_RESOURCE = endpoints.ResourceContainer(
    EchoRequest, n=messages.IntegerField(2, default=1))

@endpoints.api(name='echo', version='v1',description='description')
class EchoApi(remote.Service):

  @endpoints.method(
    # This method takes a ResourceContainer defined above.
    ECHO_RESOURCE,
    # This method returns an Echo message.
    EchoResponse,
    path='echo',
    http_method='POST',
    name='echo')

  def echo(self, request):
    logging.info("echo1"+ str(request.content))
    output_content = ' '.join([request.content] * request.n)
    return EchoResponse(content=output_content)

@endpoints.api(name='echo', version='v2', description='description2')
class EchoApi2(remote.Service):

  @endpoints.method(
    # This method takes a ResourceContainer defined above.
    ECHO_RESOURCE,
    # This method returns an Echo message.
    EchoResponse,
    path='echo',
    http_method='POST',
    name='echo')

  def echo(self, request):
    logging.info("echo2" + str(request.content))
    output_content = ' '.join([request.content] * request.n)
    return EchoResponse(content=output_content)

api = endpoints.api_server([EchoApi, EchoApi2])

好消息: version='v1‘(EchoApi)

错误if: version='v2‘被添加(EchoApi2)

错误代码: ApiConfigurationError:尝试用不兼容的多个类实现v2版本的服务回显。有关如何实现多类API的示例,请参见docstring ()。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-02-07 05:26:44

这是创建使用多个类实现的API的正确格式:

代码语言:javascript
复制
import logging
import endpoints
from protorpc import message_types
from protorpc import messages
from protorpc import remote

class EchoRequest(messages.Message):
   content = messages.StringField(1)

class EchoResponse(messages.Message):
    content = messages.StringField(1)

ECHO_RESOURCE = endpoints.ResourceContainer(
    EchoRequest, n=messages.IntegerField(2, default=1))

echo_collection = endpoints.api(name='echo', version='v1', description='description')

@echo_collection.api_class(resource_name='echo1')
class EchoApi1(remote.Service):

  @endpoints.method(
    # This method takes a ResourceContainer defined above.
    ECHO_RESOURCE,
    # This method returns an Echo message.
    EchoResponse,
    path='echo',
    http_method='POST',
    name='echo')

  def echo(self, request):
    logging.info("echo1"+ str(request.content))
    output_content = ' '.join([request.content] * request.n)
    return EchoResponse(content=output_content)

@echo_collection.api_class(resource_name='echo2')
class EchoApi2(remote.Service):

  @endpoints.method(
    # This method takes a ResourceContainer defined above.
    ECHO_RESOURCE,
    # This method returns an Echo message.
    EchoResponse,
    path='echo',
    http_method='POST',
    name='echo')

  def echo(self, request):
    logging.info("echo2" + str(request.content))
    output_content = ' '.join([request.content] * request.n)
    return EchoResponse(content=output_content)

api = endpoints.api_server([echo_collection])

文档对此进行了解释:classes

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41775746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档