OdooWiki OCA HUB
Sin categoría Licencia: LGPL-3

Este módulo permite la creación de endpoints GraphQL. En sí mismo, no hace nada y debe ser utilizado por un desarrollador para crear el esquema y los resolvers de GraphQL usando graphene, y exponerlos a través de un controlador. Un ejemplo está disponible en el módulo graphql_demo.

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 17.0

Este módulo proporciona la base técnica para exponer datos de Odoo a través de endpoints GraphQL. No añade ninguna funcionalidad visible para el usuario por sí solo; los desarrolladores lo utilizan para crear API GraphQL personalizadas y una página integrada del explorador GraphiQL.

Este módulo es una herramienta para desarrolladores: no añade menús, botones ni reglas de negocio para los usuarios cotidianos. Permite la creación de endpoints GraphQL que otros módulos pueden usar para exponer datos de Odoo.

  • Proporciona un mixin de controlador que gestiona las solicitudes GraphQL, aceptando consultas en JSON, GraphQL sin procesar o datos de formulario, y devolviendo respuestas JSON.
  • Incluye una plantilla GraphiQL, una página web interactiva donde los desarrolladores pueden escribir y probar consultas GraphQL directamente en el navegador.
  • Ofrece un resolver consciente de Odoo que convierte automáticamente los valores False de Odoo a null (excepto para los campos Boolean), convierte los datetimes a la zona horaria del usuario y genera un error si un campo solicitado no existe en el modelo.
  • Depende de las librerías de Python graphene y graphql_server.

Como solo proporciona la infraestructura base, no aparecen nuevas pantallas ni acciones en Odoo. Su propósito es ser extendido por otros módulos que definan el esquema GraphQL y los resolvers reales. El módulo no toca ningún modelo específico de Odoo; funciona con cualquier modelo a través del resolver.

Depende de

base

Lo necesitan otros módulos

Texto generado por IA (DeepSeek) al leer el código de la versión 17.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: 6 confirmadas, 3 sin información de 9 versiones.

Fuentes · Odoo 13.0

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

terminal Instalación y uso

Documentación de OCA · Odoo 17.0

Para usar este módulo, necesitas

  • crear tu esquema graphene
  • crear tu controlador para exponer tu endpoint GraphQL y, opcionalmente, un IDE GraphiQL.

Este módulo no intenta exponer todo el modelo de objetos de Odoo. Ese podría ser el propósito de otro módulo basado en este. Creemos sin embargo que es preferible exponer un endpoint específico y bien probado para cada cliente, de modo que se reduzca el acoplamiento al saber con precisión qué se expone y qué necesita ser probado al actualizar Odoo.

Para empezar a trabajar con este módulo, recomendamos el siguiente enfoque:

  • Aprende los conceptos básicos de GraphQL
  • Aprende graphene, la librería de python utilizada para crear esquemas y resolvers de GraphQL.
  • Examina el módulo graphql_demo en este repo, cópialo, adapta el controlador para que se ajuste a tus necesidades (rutas, métodos de autenticación).
  • Empieza a construir tu propio esquema y resolver.

Construir tu esquema

El esquema puede construirse usando tipos nativos de graphene. Se proporciona un odoo.addons.graphql_base.types.OdooObjectType como comodidad. Es un ObjectType de graphene con un resolvedor de atributos por defecto que:

  • convierte False a None (excepto para tipos Boolean), para evitar que las extrañas cadenas False de Odoo se rendericen como json "false";
  • añade la zona horaria del usuario a los campos Datetime;
  • lanza un error si un atributo está ausente para evitar errores de escritura en los nombres de los campos.

Crear controladores GraphQL

El módulo proporciona una clase odoo.addons.graphql_base.GraphQLControllerMixin para ayudarte a construir controladores GraphQL que proporcionen endpoints GraphiQL y/o GraphQL.

from odoo import http
from odoo.addons.graphql_base import GraphQLControllerMixin

from ..schema import schema


class GraphQLController(http.Controller, GraphQLControllerMixin):

    # The GraphiQL route, providing an IDE for developers
    @http.route("/graphiql/demo", auth="user")
    def graphiql(self, **kwargs):
        return self._handle_graphiql_request(schema)

    # The graphql route, for applications.
    # Note csrf=False: you may want to apply extra security
    # (such as origin restrictions) to this route.
    @http.route("/graphql/demo", auth="user", csrf=False)
    def graphql(self, **kwargs):
        return self._handle_graphql_request(schema)

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.