wedrix/watchtower-bundle

watchtower 的 Symfony 扩展包

安装: 77

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

v2.0.3 2024-03-12 04:34 UTC

This package is auto-updated.

Last update: 2024-09-12 06:21:25 UTC


README

WedrixWatchtowerBundle 允许您通过最少的三个简单步骤,为 Symfony 应用程序轻松提供 GraphQL API。它基于 Watchtower,这是围绕 graphql-php 的包装器,提供了一种增强的回退解析器,能够使用 Doctrine 模式自动解析 GraphQL 查询。

需求

此扩展包仅与 Symfony 版本 >= 6.1 兼容。

安装

通过三个简单步骤安装扩展包

  1. 启用 contrib 存储库中定义的食谱

     composer config extra.symfony.allow-contrib true
    
  2. 安装扩展包

     composer require wedrix/watchtower-bundle
    
  3. 生成 GraphQL 模式

     php bin/console watchtower:schema:generate
    

完成了! 默认情况下,您的 GraphQL API 现在可通过 whatever-your-domain-is/graphql.json 提供。

注意:当通过网页浏览器访问 API 时,如果您的应用程序尚未启用 CORS,您可能需要启用 CORS。为此,请查阅 NelmioCorsBundle 文档 以获取安装和设置指南。您还可以查看安装扩展包后的快速配置示例 演示应用程序的源代码

功能

有关功能列表的完整信息,请参阅 Watchtower 文档

配置选项

各种配置选项可在 config/packages/wedrix_watchtower_bundle.yaml 文件中找到

  • endpoint - 配置访问 GraphQL API 的端点(默认为 /graphql.json)。
  • schema_file - 配置用作 GraphQL 模式源文件的文件(使用 php bin/console watchtower:schema:generate 命令自动生成)。如果您的项目已经有一个现有的模式文件,您可以将其指向该文件。
  • plugins_directory - 配置包含您的各种插件的目录:过滤器、选择器、解析器等。请参阅 Watchtower 文档 了解有关插件的更多信息。
  • scalar_type_definitions_directory - 配置包含您的各种标量类型定义文件的目录。请参阅 Watchtower 文档 了解有关标量类型定义的更多信息。
  • cache_directory - 存储缓存的目录。
  • optimize - 是否以优化模式运行。这可以提高性能,但在开发过程中可能会很烦人,因为每次您更改模式或添加新的插件或标量类型定义时,都需要重新生成缓存。
  • debug - 是否向客户端发送调试信息。大多数情况下,此选项仅应在开发环境中启用,但配置已公开,以便那些想冒险在生产环境中调试的人。
  • context - 这允许您在插件中使用 Node::context() 方法访问容器中的任何服务。服务键可以是您选择的任何名称,但值应该是服务 ID。例如:entity_manager: 'doctrine.orm.entity_manager'

可用的命令

  • watchtower:plugins:add - 用于生成插件的模板。请查阅Watchtower 文档以获取关于插件更多信息。
  • watchtower:scalar-type-definitions:add - 用于生成标量类型定义的模板。请查阅Watchtower 文档以获取关于标量类型定义更多信息。
  • watchtower:schema:generate - 用于根据 Doctrine 模式生成 GraphQL 模式文件。
  • watchtower:plugins:list - 列出所有配置的插件。请查阅Watchtower 文档以获取关于插件更多信息。
  • watchtower:scalar-type-definitions:list - 列出所有配置的标量类型定义。请查阅Watchtower 文档以获取关于标量类型定义更多信息。
  • watchtower:schema:update - 用于根据当前 Doctrine 模式更新 GraphQL 模式文件。
  • watchtower:cache:generate - 用于生成更新后的缓存。