protorpc
エンドポイントを使用すると、奇妙なエラーが発生します。このコードでは:
class Application(EndpointsModel):
_message_fields_schema = ('id', 'name')
created = ndb.DateTimeProperty(auto_now_add=True)
name = ndb.StringProperty()
roles = ndb.IntegerProperty(repeated=True)
updated = ndb.DateTimeProperty(auto_now=True)
owner = ndb.KeyProperty(kind='User')
@API.api_class(resource_name="application")
class ApplicationApi(protorpc.remote.Service):
@Application.method(http_method="GET",
request_fields=('id',),
name="get",
path="applications/{id}")
def ApplicationGet(self, instance):
if not instance.from_datastore:
raise endpoints.NotFoundException("Application not found.")
return instance
@Application.query_method(http_method="GET",
query_fields=('limit', 'order', 'pageToken'),
name="list",
path="applications")
def ApplicationList(self, query):
return query
application.get()
エラーを呼び出すと、次のようになります: (完全なトレースはこちら):
TypeError: 正確なタイプ Application のエンティティからのみコピーできます。アプリケーションのインスタンスを受け取りました。
application.list()
エラーを呼び出す場合は次のとおりです: (完全なトレースはこちら):
ValidationError:
<class '.Application'>
フィールド アイテムの予想される型が見つかりました<Application name: u'test'>
(type<class '.Application'>
)
何が原因でしょうか? ほぼ同じコード (プロパティが異なるだけ) を持つ私の他のモデルは正常に動作します。