标签: GraphQL API
-
针对 GraphQL API 请求间歇性返回 500 错误且无响应数据的问题,通过在 index.php 设置错误级别并查看日志,发现 Allowed memory size exhausted 错误。调整内存限制可暂时解决,但进一步排查发现执行 SQL 查询时未添加 limit 约束,导致全表数据加载至内存从而超出限制,添加约束后问题得到定位。
-
本文介绍了在 Altair GraphQL Client 中将 GraphQL API 请求添加至收藏夹的操作方法。用户需点击地址栏按钮并选择添加到收藏夹,随后选定集合并新建收藏夹,将集合命名为 Shop GraphQL API 且空间设置为 Remote,最终即可在左侧工具栏的收藏栏中查看已添加的请求。
-
文章记录了一个 GraphQL API 耗时长达 7 秒的排查过程。经 Laravel Telescope 和独立客户端测试,实际执行时间仅约 1.8 秒。问题根源在于 Windows 10 环境下的 Nginx 与 PHP FastCGI 默认只能同时处理单一请求,导致请求排队。通过调整 Nginx 配置并启动多个 php-cgi 进程绑定不同端口,实现了并发处理。最终刷新页面测试,请求耗时缩短至 2 秒左右,符合预期。
-
针对 GraphQL API 响应报错提示预期 URL 类型却接收到空字符串的问题,通过打印对象发现其值为空字符串。经排查,该字段允许为 null 但对空字符串会执行 URL 规则验证。最终将值设置为 null 或符合规则的 http 开头字符串后,验证不再报错。
-
在 GraphQL API 开发中遇到了字段冲突报错,提示 default 字段存在 Float! 和 Boolean! 类型冲突。经排查,原因在于接口实现中 ThemeSettingRange 和 ThemeSettingCheckbox 的 default 字段类型不同,且在同一选择集中使用了内联片段进行查询。根据规范,同名或同别名字段必须返回相同类型。参考官方 issue,使用字段别名可以解决此问题,但这会增加客户端的解析难度。
-
本文介绍了在 Laravel 6 结合 Lighthouse 5 及模块化架构下,为 GraphQL API 创建自定义验证规则的过程。通过在模块中生成规则类,编写逻辑判断缓存标识是否存在,并在 Schema 文件中使用 @rules 指令引用该规则,实现了验证逻辑的复用。文章还详细说明了如何配置模块内的多语言文件以返回本地化错误消息,最终完成了包含中英文错误提示的接口功能测试。
-
本文介绍了在 Laravel 6 结合 Module 与 Lighthouse 框架中实现安全验证的具体流程。通过使用 @rules 指令应用 Exists 规则,针对请求参数 themeId 进行是否存在的数据表校验。经过测试验证规则有效,并利用 Laravel Telescope 查看 SQL 语句。同时验证了该规则会自动读取表前缀,当前缀变更时验证依然生效,无需额外调整。
-
文章记录了在 Lighthouse 5 中基于 PHPUnit 编写 Mutation 测试的过程。通过编辑 GraphQL 测试文件解决了输入类型报错问题,并针对因请求参数重复导致验证失败的断言错误,将变量 key 的值改为基于时间戳生成。该方法在配置单独测试数据库的基础上,有效避免了多次运行测试时的参数冲突,确保了测试结果的稳定性。
