标签: GraphQL
-
在 Laravel 6 和 Lighthouse 5 环境下,使用 @rules 指令应用 exists 验证规则时,自定义属性名无法按语言区域正确翻译,导致返回的验证消息中包含原始字段名而非本地化名称。经过排查,排除了 nwidart/laravel-modules 版本及语言文件位置的影响,确认原因在于 Lighthouse 5 对验证属性的支持不够彻底。目前决定暂不编写自定义验证器类,暂时接受在非英语环境下属性名未被完全翻译的现状。
-
针对在 Laravel 6、LightHouse 5 和 PHPUnit 环境中编写 Mutation 测试时需要删除缓存数据的需求,文章参考了 REST API 测试中先操作数据库再请求删除的思路。通过调整测试策略,先直接操作缓存生成明确的缓存标识,随后执行 HTTP API 请求进行删除操作。实际运行结果显示,该方案成功通过测试,实现了对删除缓存标识 Mutation 的有效验证。
-
文章记录了在 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 字段,优化了最终的响应结构。
-
本文记录了在 Shopify 后台访问在线商店页面时出现 WebSocket connection failed 报错,导致页面持续加载无法正常显示的问题。通过排查发现,在浏览器中先访问一个非在线商店下的页面,然后再打开在线商店相关页面,即可规避报错并成功加载内容。目前该问题尚无根本解决方法,此操作流程仅为有效的临时应对方案。
