Дуршлаг и карниз не работает должным образом
Я пытаюсь добавить проверку схемы, как это описано в официальном документе о карнизе, и сделать это через декоратор, такой как service_name.post(schema=SomeSchemaClass), но это не работает
import colander
class TrackSchema(colander.MappingSchema):
genre = colander.SchemaNode(colander.String(), location="body", type='str')
@track.post(schema=TrackSchema)
def create_track(request):
...
И я получаю ошибку
"status": "error", "errors": [{"location": "body", "name": null, "description": "Expecting value: line 1 column 2 (char 1)"}, {"location": "body", "name": "genre", "description": "genre is missing"}]}
Я пробую разные типы местоположения, такие как строка запроса и заголовки, но я получаю ту же ошибку.
1 ответ
Решение
Обнаружил то же самое и после копания, если вы посмотрите на cornice.util.extract_request_data
функция, вы увидите, что он пытается загрузить тело как JSON json.loads(request.body)
поэтому вы должны опубликовать свои данные как json:
curl -H "Content-Type: application/json" -X POST http://localhost:6543/foo -d '{"foo": "bar"}'
НТН