Обновление содержимого класса Endpoints с использованием endpoints-proto-datastore

У меня есть класс, который наследует от EndpointsModel

class User( EndpointsModel ):
  name = ndb.StructuredProperty( Name, required=True )
  dateOfBirth = ndb.DateProperty(required=True)
  userName = ndb.StringProperty( required=True )
  emailId = ndb.StringProperty( required=True )

Теперь предположим, что я хочу обновить имя для некоторого пользователя с некоторым именем пользователя. Поскольку методы для User ожидают объект User в качестве входных и выходных данных, нужно ли мне создавать отдельный класс сообщений для имени, а затем использовать его для обновления имени, как если бы я не использовал endpoints-proto-datastore?

1 ответ

Решение

Вы можете определить request_fields в вашем методе API, чтобы ограничить "сообщение запроса" подмножеством полей в User

@User.method(path='/user/{id}',
             http_method='PUT',
             name='update',
             request_fields=('id', 'name'))
def update_user(self, user):
    ...