Допустим, у меня есть модель с двумя обязательными полями:
class ExampleModel(EndpointsModel):
attr1 = ndb.StringProperty(required=True)
attr2 = ndb.StringProperty(required=True)
Затем я хочу использовать endpoints-proto-datastore для запроса любого attr1 или attr2:
@ExampleModel.query_method(query_fields=('attr1', 'attr2'),
path='example', name='list')
def example_list(self, query):
return query
Это не удастся, если я укажу только одно из полей - из API Explorer это обязательное поле, но сам API возвращает:
{
"error": {
"code": 400,
"errors": [
{
"domain": "global",
"message": "Error parsing ProtoRPC request (Unable to parse request content: Message CombinedContainer is missing required field attr2)",
"reason": "badRequest"
}
],
"message": "Error parsing ProtoRPC request (Unable to parse request content: Message CombinedContainer is missing required field attr2)"
}
}
Очевидно, я мог бы пометить их как ненужные, а затем выполнить проверку в коде приложения, но мне было интересно, не придумал ли кто-нибудь другое лучшее решение.
Большое спасибо