跳转到主要内容

基础GraphQL/GraphiQL控制器

项目描述

Production/Stable License: LGPL-3 OCA/rest-framework Translate me on Weblate Try me on Runboat

此模块允许创建GraphQL端点。本身,它不执行任何操作,必须由开发人员使用graphene创建GraphQL模式和解析器,并通过控制器公开它们。在graphql_demo模块中有一个示例。

目录

使用方法

要使用此模块,您需要

  • 创建您的graphene模式

  • 创建您的控制器以公开您的GraphQL端点,并且可选地是一个GraphiQL IDE。

此模块不试图公开整个Odoo对象模型。这可能是由基于此模块的另一个模块来完成的。然而,我们认为公开一个经过良好测试的特定端点对每个客户来说更好,这样可以减少耦合,并确切知道在升级Odoo时需要公开什么以及需要测试什么。

要开始使用此模块,我们建议以下方法

  • 学习GraphQL基础知识

  • 学习graphene,用于创建GraphQL模式和解析器的Python库。

  • 检查此存储库中的graphql_demo模块,复制它,根据您的需求调整控制器(路由、认证方法)。

  • 开始构建您自己的模式和解析器。

构建您的模式

可以使用本地石墨烯类型构建模式。提供了一个便利的 odoo.addons.graphql_base.types.OdooObjectType。它是一个具有默认属性解析器的石墨烯 ObjectType,该解析器

  • 将 False 转换为 None(布尔类型除外),以避免 Odoo 的怪异 False 字符串被渲染为 json "false"

  • 将用户时区添加到 Datetime 字段;

  • 如果属性不存在,则引发错误,以避免字段名类型错误。

创建GraphQL控制器

该模块提供了一个 odoo.addons.graphql_base.GraphQLControllerMixin 类,以帮助您构建提供 GraphiQL 和/或 GraphQL 端点的 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)

错误跟踪器

在 GitHub 问题上跟踪错误GitHub Issues。如有问题,请检查您的错误是否已报告。如果您是第一个发现它的人,请通过提供详细且受欢迎的 反馈 来帮助我们将其解决。

请不要直接联系贡献者以获取支持或技术问题的帮助。

致谢

作者

  • ACSONE SA/NV

维护者

此模块由 OCA 维护。

Odoo Community Association

OCA,或 Odoo 社区协会,是一个非营利组织,其使命是支持 Odoo 功能的协作开发并推广其广泛应用。

当前 维护者

sbidoul

此模块是 GitHub 上的 OCA/rest-framework 项目的组成部分。

欢迎您贡献力量。有关如何贡献的更多信息,请访问 https://odoo-community.org/page/Contribute

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

此版本没有提供源代码分发文件。请参阅有关 生成分发存档 的教程。

构建的分发

odoo_addon_graphql_base-17.0.1.0.1.3-py3-none-any.whl (29.6 kB 查看哈希)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面