没有不值得去解决的问题,也没有不值得去学习的技术!

标签: GraphQL

  • 在 Laravel 6 和 Lighthouse 5 环境下,使用 @rules 指令应用 exists 验证规则时,自定义属性名无法按语言区域正确翻译,导致返回的验证消息中包含原始字段名而非本地化名称。经过排查,排除了 nwidart/laravel-modules 版本及语言文件位置的影响,确认原因在于 Lighthouse 5 对验证属性的支持不够彻底。目前决定暂不编写自定义验证器类,暂时接受在非英语环境下属性名未被完全翻译的现状。

  • 针对在 Laravel 6、LightHouse 5 和 PHPUnit 环境中编写 Mutation 测试时需要删除缓存数据的需求,文章参考了 REST API 测试中先操作数据库再请求删除的思路。通过调整测试策略,先直接操作缓存生成明确的缓存标识,随后执行 HTTP API 请求进行删除操作。实际运行结果显示,该方案成功通过测试,实现了对删除缓存标识 Mutation 的有效验证。

  • 针对 Shopify 文档未涵盖在线商店 GraphQL API 的问题,文章记录了在 Altair GraphQL Client 中调用该接口的过程。首先设置接口地址并粘贴从后台复制的查询与变量,配置请求头后因鉴权失败排查原因,发现需先请求内部接口生成会话令牌。将获取的 Session 值填入 Authorization 头后,最终成功获取在线商店的主题列表数据。

  • 文章记录了在 Lighthouse 5 中基于 PHPUnit 编写 Mutation 测试的过程。通过编辑 GraphQL 测试文件解决了输入类型报错问题,并针对因请求参数重复导致验证失败的断言错误,将变量 key 的值改为基于时间戳生成。该方法在配置单独测试数据库的基础上,有效避免了多次运行测试时的参数冲突,确保了测试结果的稳定性。

  • 本文介绍了在 Laravel 6 结合 Lighthouse 和 Module 框架下实现请求参数安全验证的流程。针对包含多条复杂规则的变更操作,通过创建专门的验证器类来处理诸如数据库记录存在性、路径格式、后缀名限制及数据唯一性等校验需求,并将其从应用目录迁移至 Module 模块中。最终在 GraphQL 文件中使用 @validator 指令指定该类,经测试确认验证规则有效且 SQL 语句执行正常。

  • 文章以在 Shopify 创建资源为例,记录了从 REST 迁移到 GraphQL 的实践过程。由于 GraphQL 未提供创建模板文件的 API,作者参考 productCreate 接口进行了尝试。通过在后台手动添加产品并复制网络请求参数,解决了因 GraphQL 版本不一致导致字段不匹配的问题。经过多次修正查询与变量结构,最终成功创建了产品,并总结了请求与响应的最终结构及报错处理方式。

  • 本文参考了 GitHub 的迁移思考,在从 REST 迁移到 GraphQL 的过程中,模仿 Shopify 的产品与图片列表结构,构建了适用于模板文件的响应格式。文章将顶级目录映射为产品,将目录下的模板文件列表映射为产品的图片列表,通过这种方式实现了嵌套的列表结构。最后根据业务需求,移除了冗余字段,仅保留必要的 key 字段,优化了最终的响应结构。

  • 文章介绍了如何在 Postman 中请求 Shopify’s GraphQL Admin API。操作包括配置 POST 请求、设置 Headers、在 Body 中编写查询及变量。为启用自动完成功能,需先通过 Altair 获取架构并转换为 GraphQL SDL,然后在 Postman 中导入本地 schema 文件。最终解决了格式转换错误,实现了自动补全,但发现该架构需手动导入,不支持基于请求自动更新。

  • 本文记录了在 Shopify 后台访问在线商店页面时出现 WebSocket connection failed 报错,导致页面持续加载无法正常显示的问题。通过排查发现,在浏览器中先访问一个非在线商店下的页面,然后再打开在线商店相关页面,即可规避报错并成功加载内容。目前该问题尚无根本解决方法,此操作流程仅为有效的临时应对方案。

  • 本文参考 GitHub 解决了在接口响应中精确判断具体资源操作权限的问题。通过分析 GitHub 的 REST API 和 GraphQL API,发现其利用 viewerCanUpdate 等字段细化权限控制,而非依赖接口层级配置。最终决定在 GraphQL 中实现 themeAsset 类型,并在响应字段中添加 deletable、renameable 和 updatable,以动态返回前端所需的操作状态。

👨‍💻 个人品牌

王世强|技术实践者 · 独立博客作者

15+ 年 Web 与系统实践经验,持续关注网站基础设施、系统优化、AI 工具与自动化。

持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。

长期建设个人项目,也欢迎合适的技术交流、咨询与合作。

👉 关于我

.env (14) add (16) AI 翻译 (31) Apache (13) Array (19) A Tour of Go (69) Cache (13) CentOS (23) ChatGPT (20) ChatGPT Plus (15) chrome (19) Cloudflare (34) Codex (22) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (16) delete (31) Docker (32) Dockerfile (15) EdgeOne (33) environment variable (19) error (24) file (15) filter (20) Git (27) GitHub (23) Gitlab (15) GLM-5.2 (27) Go (62) go-tour-i18n (14) Google AdSense (29) Go 语言 (24) GraphQL (24) GraphQL API (14) Gutenberg (35) http (21) https (22) Interface (19) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (22) Migrate (13) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (21) PHP (67) php-fpm (19) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (58) postman (18) Query (17) queue (16) Rancher (24) Redis (51) RESTful (27) RESTful API (23) Shopify (19) SlyTranslate (21) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (40) update (20) VPN (17) W3 Total Cache (39) Windows 10 (46) WireGuard (28) WordPress (134) WordPress 多语言 (13) WPCode (23) Wstunnel (15) Yii (40) Yii 2 (70) Yii 2.0 (51) ZgoCloud (13) 多语言网站 (13) 多语言翻译 (36) 技术博客 (15) 故障排查 (15) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)

2026 年 9 月
 123456
78910111213
14151617181920
21222324252627
282930