我想创建一个作为 EndpointsModel 的 BaseModel,以包含我所有模型中共有的属性(即 created_at、modified_at)。然后我想创建一个扩展该 BaseModel 的用户模型。
但是,我遇到了一个问题,当我在 API Explorer 中查看我的“user.create”方法时,请求正文只显示 created_at 和 modified_at 的 BaseModel 属性,而不是用户名属性。
这是我所拥有的:
from endpoints_proto_datastore.ndb import EndpointsModel
from google.appengine.ext import ndb
class BaseModel(EndpointsModel):
created_at = ndb.DateTimeProperty(auto_now_add=True)
modified_at = ndb.DateTimeProperty(auto_now=True)
class User(BaseModel):
username = ndb.StringProperty(required=True)
以下是使用 Google Cloud Endpoints 构建的 API:
import endpoints
from google.appengine.ext import ndb
from models import User
from protorpc import remote
@endpoints.api(name='user', version='v1',
description='API for User Management')
class UserApi(remote.Service):
@User.method(name='user.create', path='user'):
def create_user(self, user):
user.put()
return user
application = endpoints.api_server([UserApi])