OdooWiki OCA HUB

Base Rest Datamodel

base_rest_datamodel folder_open OCA/rest-framework open_in_new
Sin categoría Licencia: LGPL-3

Este complemento te permite usar objetos DataModel como parámetros y/o respuesta con tus métodos de la API REST.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 16.0

Permite a los desarrolladores usar objetos DataModel como entrada y salida para los métodos de la API REST, con validación automática y documentación OpenAPI.

Este módulo es un puente técnico entre el framework REST API y la librería DataModel. No añade ningún menú, pantalla ni botón para los usuarios finales. En su lugar, cambia cómo se definen y documentan los endpoints de REST API.

Cuando se declara un método de REST API, los desarrolladores ahora pueden especificar que un parámetro o una respuesta es un objeto DataModel (o una lista de ellos). El módulo entonces automáticamente:

  • Convierte los datos JSON entrantes en objetos DataModel, ignorando los campos desconocidos y permitiendo opcionalmente datos parciales.
  • Valida los datos convertidos; si la validación falla, lanza un error de usuario con los detalles.
  • Convierte los objetos DataModel de vuelta a JSON para la respuesta y valida el resultado antes de enviarlo.
  • Genera documentación OpenAPI (Swagger) para estos parámetros y respuestas, incluyendo parámetros de consulta, cuerpos de solicitud y esquemas de respuesta.

El módulo depende de base_rest y datamodel, y requiere las librerías de Python apispec y marshmallow. Solo toca la capa de REST API; no se modifica ningún modelo de negocio de Odoo.

Lo necesitan otros módulos

Texto generado por IA (DeepSeek) al leer el código de la versión 16.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 5 confirmadas, 4 sin información de 9 versiones.

Fuentes · Odoo 14.0

Confirmado el 2026-11-03 en la rama 14.0 de OCA/rest-framework.

terminal Instalación y uso

Documentación de OCA · Odoo 16.0

Para usar instancias de DataModel como petición y/o respuesta de un endpoint de servicio REST debes:

  • Definir tus objetos DataModel;
  • Proporcionar la información requerida al decorador odoo.addons.base_rest.restapi.method;
from marshmallow import fields

from odoo.addons.base_rest import restapi
from odoo.addons.component.core import Component
from odoo.addons.datamodel.core import Datamodel

class PingMessage(Datamodel):
    _name = "ping.message"

    message = fields.String(required=True, allow_none=False)


class PingService(Component):
    _inherit = 'base.rest.service'
    _name = 'ping.service'
    _usage = 'ping'
    _collection = 'my_module.services'


    @restapi.method(
        [(["/pong"], "GET")],
        input_param=restapi.Datamodel("ping.message"),
        output_param=restapi.Datamodel("ping.message"),
        auth="public",
    )
    def pong(self, ping_message):
        PingMessage = self.env.datamodels["ping.message"]
        return PingMessage(message = "Received: " + ping_message.message)

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.