Estoy usando Python Eve, que es increíble, sin embargo, me encontré con un problema y no estoy seguro de si hay una solución.
Tengo un dictado de 'campos' en este esquema:
'profiles': { 'fields': { 'type': 'dict', 'default': {} } }Me gustaría poder PATCH actualizar el campo 'fields', pero el problema es que una solicitud de PATCH nunca ELIMINARÁ ningún campo dentro de 'fields', pero no puedo usar un comando PUT o todos mis otros campos de perfil (no como se muestra arriba) desaparecerá.
Intenté usar un subrecurso como este:
'profile-fields': { 'schema': { 'fields': { 'type': 'dict', 'default': {} } }, 'datasource': { 'source': 'profiles', 'projection': { 'fields': 1 } } },pero como dice la documentación de Python Eve:
Tenga en cuenta que los métodos POST y PATCH aún permitirán manipular todo el esquema http://python-eve.org/config.html#multiple-api-endpoints-one-datasource
¿Alguien sabe de una forma de hacer esto?
Por ejemplo:
# Create a record POST /api/profiles { 'name': 'Test', 'fields': { 'one': 1, 'two': 2 } } # => { _created: 'blah', _id: '123456' } # then update fields with a PATCH request PATCH /api/profiles/123456 { 'fields': { 'three': 3, 'four': 4 } } # then get the updated record GET /api/profiles/123456 # RESPONSE { '_id': '123456', 'name': 'Test', 'fields': { 'one': 1, 'two': 2, 'three': 3, 'four': 4 } }Acabo de aceptar usar una solicitud PUT y enviar todo el objeto nuevamente, lo cual está bien, supongo, solo pensé que podría haber una manera de hacer esto.