基础GraphQL/GraphiQL控制器
项目描述
此模块允许创建GraphQL端点。本身,它不执行任何操作,必须由开发人员使用graphene创建GraphQL模式和解析器,并通过控制器公开它们。在graphql_demo模块中有一个示例。
目录
使用方法
要使用此模块,您需要
创建您的graphene模式
创建您的控制器以公开您的GraphQL端点,并且可选地是一个GraphiQL IDE。
此模块不试图公开整个Odoo对象模型。这可能是由基于此模块的另一个模块来完成的。然而,我们认为公开一个经过良好测试的特定端点对每个客户来说更好,这样可以减少耦合,并确切知道在升级Odoo时需要公开什么以及需要测试什么。
要开始使用此模块,我们建议以下方法
学习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。如有问题,请检查您的错误是否已报告。如果您是第一个发现它的人,请通过提供详细且受欢迎的 反馈 来帮助我们将其解决。
请不要直接联系贡献者以获取支持或技术问题的帮助。
致谢
维护者
此模块由 OCA 维护。
OCA,或 Odoo 社区协会,是一个非营利组织,其使命是支持 Odoo 功能的协作开发并推广其广泛应用。
当前 维护者
此模块是 GitHub 上的 OCA/rest-framework 项目的组成部分。
欢迎您贡献力量。有关如何贡献的更多信息,请访问 https://odoo-community.org/page/Contribute。
项目详情
哈希 for odoo_addon_graphql_base-17.0.1.0.1.3-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 104f101b5ff2acf45232969a2ef228d26f4708fb994d8dc2958ccb9d226ac231 |
|
MD5 | a8a15680f54db649d4830e0c9a65ddbe |
|
BLAKE2b-256 | 8bdfb299a8707fd9b22c7da4bda9bdbfbff5ce363ff45f377acb522e2c532bcd |