首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在laravel灯塔中使用附加参数测试graphql上传突变

在laravel灯塔中使用附加参数测试graphql上传突变,可以按照以下步骤进行操作:

  1. 首先,确保你已经安装了Laravel和Laravel Passport。
  2. 在Laravel项目中,使用Composer安装Lighthouse GraphQL:
代码语言:txt
复制
composer require nuwave/lighthouse
  1. config/app.php文件的providers数组中添加Lighthouse服务提供者:
代码语言:txt
复制
Nuwave\Lighthouse\Providers\LighthouseServiceProvider::class,
  1. 生成配置文件和默认模板:
代码语言:txt
复制
php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider"
  1. .env文件中配置数据库连接信息,然后执行迁移:
代码语言:txt
复制
php artisan migrate
  1. 创建GraphQL模式文件:
代码语言:txt
复制
php artisan lighthouse:ide-helper
  1. routes/graphql/schema.graphql文件中定义GraphQL模式和类型,包括你想要测试的上传突变。
  2. 创建一个测试用例文件,例如tests/GraphQL/ExampleTest.php,并编写测试方法,可以在其中使用附加参数测试上传突变。下面是一个示例:
代码语言:txt
复制
use Tests\TestCase;

class ExampleTest extends TestCase
{
    public function testUploadMutationWithAdditionalParameters()
    {
        // 假设你已经定义了一个名为`uploadFile`的上传突变,它接收一个文件参数`file`和两个附加参数`param1`和`param2`
        $file = // 创建一个测试用的文件

        $response = $this->post('/graphql', [
            'operations' => json_encode([
                'query' => 'mutation($file: Upload!, $param1: String!, $param2: Int!) {
                    uploadFile(file: $file, param1: $param1, param2: $param2) {
                        // 返回你需要的字段
                    }
                }',
                'variables' => [
                    'file' => null, // 这里设置为null,因为下面会在`multipart`中设置文件
                    'param1' => 'value1', // 设置附加参数的值
                    'param2' => 123,
                ],
            ]),
            'map' => json_encode([
                '0' => ['variables.file'],
            ]),
            '0' => $file, // 设置文件参数
        ]);

        // 断言响应是否符合预期
        $response->assertStatus(200);
        $response->assertJson([
            // 断言返回的字段是否符合预期
        ]);
    }
}
  1. 运行测试用例:
代码语言:txt
复制
php artisan test

这样,你就可以使用附加参数测试上传突变了。关于Laravel灯塔、GraphQL和Laravel的更多信息,可以参考以下链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一种不错的 BFF Microservice GraphQLREST API 层的开发方式

运行单元测试 单元测试与要测试的模块或类位于同一目录 所有单元测试都需要有一个扩展名 \*.spec.ts npm run test 运行集成测试 集成测试与要测试的模块或类位于同一目录 所有集成测试都需要有一个扩展名...如果启用了 JWT 安全性(环境变量 JWT_AUTH 为 true),我们需要使用登录突变 API 来获取示例 JWT 令牌(当前设置为1小时到期) Step 1 - 使用登录 mutation(突变...“Authorization” header 必须使用以下语法:Bearer xxxxxx.yyyyyyy.zzzzzz 使用 swagger ui 测试 点击 “Authorize” 按钮,设置上面提到的...当前添加了一个使用 @date 指令的示例( graphql-tools 文档中所述) Query ({ today(format: "mmm-dd-yy") }) - 这里的格式基于@date scheme...默认情况下,这假设 SonarQube 服务器使用默认端口在本地运行 运行单元测试 npm run test 测试结果以 sonar 兼容格式收集在结果文件夹 将结果推送到 SonarQube npm

2.3K10
  • Laravel API 开发推荐阅读清单

    讲讲我最近用 Laravel 做的一个 App 后端项目 Laravel Passport API 认证使用小结 关于 RESTful API 设计的总结 Laravel 5.5 使用 Passport...) 多字段登录通用解决方案 Laravel 做 API 服务端,VueJS+iView 做 SPA,给新手一个 Demo 在 Laravel使用 GraphQL 一【获取数据】 Laravel 开发...RESTful API 的一些心得 对 REST 的理解 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 在 Laravel 动态隐藏 API 字段 Nginx 下部署...—— 微信登录、JWT的使用; 用户信息 —— 获取个人信息、上传图片接口、修改个人信息; 话题接口 —— 发布、修改、删除、列表; 话题回复接口 —— 发布、修改、删除、列表; 权限控制 —— 权限列表...,角色列表; 资源推荐接口、活跃用户接口; 接口本地化处理; API 接口错误代码机制; APNS 消息推送服务器端介绍及实现; API 测试 —— 单元测试、集成测试、黑盒测试; 快速完成 API 文档

    4.2K70

    超越 REST

    GraphiQL:为 《星球大战》API 自动生成的测试 GUI 我们的经验已经为对 GQLMS 作为快速开发平台感兴趣的团队带来了一个具有许多最佳实践的架构。...通过允许 GraphQL 客户端“所用权限”(“full access”)自动生成的 GraphQL 查询和 Graphile 生成的突变(在所有表和视图上公开的 CRUD 操作)来提高灵活性;然后在开发过程的后期...关于安全性(如何将其与我们的 IAM 基础设施集成,以及如何在数据库实施行级访问控制?)和性能(如何限制查询以避免一次选择所有行来对数据库进行 DDoS 攻击?)...另外,Graphile 的默认行为是为表和视图生成突变,但是智能注解 @omit create,update,delete 将从模式删除突变。...向 Graphile 生成的模式添加自定义查询和突变(即公开 UI 所需的 gRPC 服务调用)是我们目前在 Docker 镜像不支持的。

    2.9K20

    使用 GraphQL 和 Ballerina 操作多个数据源

    GraphQL 的操作类型如下: 查询(读取); 突变(写入 / 更新); 订阅(连续读取)。 这些操作都只是一个字符串,需要根据 GraphQL 查询语言规范进行构造。...为什么选择 Ballerina 你可以使用任何流行的编程语言来构建 GraphQL 应用程序, Go、Java、Node.js 等。...服务类型的每一个资源方法表示 GraphQL 对象的一个字段,资源方法可以有输入参数,这些输入参数被映射到相应字段的参数。...首先,你需要导入 ballerina/graphql 模块。然后,你通过指定要监听的端口来创建 GraphQL 监听器对象,并将其附加到服务上。...测试 Bookstore 服务 要调用 GraphQL 服务器,需要使用客户端。

    2.4K20

    【腾讯云的1001种玩法】 Laravel 整合万向优图图片管理能力,打造高效图片处理服务

    什么是万象优图 万象优图是腾讯云为开发者提供图片智能鉴黄、图片内容识别、人脸识别、OCR识别等服务;也可以根据需求提供定制化的图片识别服务;同时也提供灵活的图像编辑服务,裁剪、压缩,水印等,满足您的各种业务场景图片需求...如何在 Laravel使用万象优图?...配置完成后,在需要使用的文件中使用 use Yuecode\Image\YouTu; 然后使用静态方法调用 比如 $res = YouTu::pornDetectUrl( array...图片文件只能鉴黄,参数为文件的array 示例代码 上传图片 $res = YouTu::uploadImage($request->file('x')->getRealPath()); dd($res...整合微视频上传管理能力,轻松打造视频App后台 多维活体检测,让人脸识别更安全 【腾讯云的1001种玩法】Laravel 整合 COS 对象存储服务,享受无限容量存储服务

    4.7K00

    如何利用好BurpSuite在企业src捡洞

    0x01 今天分享一些实用的BurpSuite插件实用技巧,帮助白帽子如何在竞争激烈的src挖掘吃上一块肉。...0x02 inql极其便捷测试GraphQL漏洞 这里先来简单了解一下什么是GraphQL,简单的说,GraphQL是由Facebook创造并开源的一种用于API的查询语言。...我们通常在实战遇到graphqlGraphQL内置了接口文档,你可以通过内省的方法获得这些信息,如对象定义、接口参数等信息。...0x03 Autorepeater发现越权,未授权,甚至ssrf漏洞 Autorepeater可以说是复杂版本的Autorize,它可以针对细化参数实现更加准确的测试通常涉及到的uuid,、suid...但是,它的设置有些麻烦,比如下面这种uuid的替换测试,需要手动设置: 使用时候打开开关即可 可以看到,该工具会自动替换你填入规则的token,ssrf测试的dnslog地址去测试,然后返回包比对包的大小

    67730

    现代后端开发者必备技能——2018 版

    对此的一些想法: 重构并实施你学到的最佳实践 查看未解决的问题并尝试解决 添加任何附加功能 第7步 - 了解测试 测试有几种不同的测试类型。了解这些类型它们的目的是什么。...了解如何在应用程序编写单元测试和集成测试。另外,了解不同的测试术语, mocks, stubs 等。...如果你选择了PHP,我会建议你使用 Laravel或Symfony,如果是为框架的话,使用Lumen或Slim。如果你选择Node.js,有几种不同的选择,但突出的是Express.js。...如果你必须选择一个,请使用Redis。 第14步 - 缓存 了解如何在你的应用程序实施应用程序级缓存。了解如何使用Redis或Memcached并在你在 步骤12 创建的应用程序实施缓存。...你可以在上面制作的博客应用程序中使用它来实现博客文章列表的实时更新。 第22步 - 学习GraphQL 学习如何使用GraphQL制作API。

    1.4K30

    PayPal大规模采用GraphQL的探索和实践

    有时,新版本的文档或参数会发生更改。有了 GraphQL,我们可以发送更新,客户端不再需要担心版本的更新。...更容易测试:Apollo Client 等 GraphQL 工具可以更容易地在 React 等 UI 添加 GraphQL 查询。它有助于保持代码位于同一位置,并有助于调试和分离关注点。...如果我们遗漏了一个参数,我们将返回文档并再次搜寻这个参数。这使得使用 API 变得比较困难和耗时。...我们在 JS @ PayPal 公开会 上多次讨论了我们是如何在各种应用程序中使用 GraphQL 的。 6 我们面临哪些挑战?...图片来源:Possessed Photography on Unsplash 我们仍在创建一种标准方法来应对 GraphQL 技术的挑战,异常处理、身份认证、文件处理和批处理。

    3K20

    实操 | 工程师该如何基于Serverless进行项目开发

    6月24日 Kubecon大会上,我们将为前端、开发及运维人员举办一场深度的Serverless Workshop培训,从服务型无服务化前端实践开始,到云函数在实际业务的落地使用,通过技术培训+上手实操...在线调试 本地测试通过后,通过TCF package及 deploy命令,部署到云端 云端查看函数项目,并进行线上测试 查看对应的监控和日志,配置告警 通过版本和别名控制不同版本的流量,进行灰度发布 >...SCF vscode插件 即将发布 培训2:云函数在实际业务的落地使用 培训演讲 云函数基础能力和使用场景; 传统模式和云函数在开发模式的区别; 如何使用云函数与GraphQL对业务进行快速改造与迭代...网关的格式返回数据 步骤四:部署代码到云端,在线调试 打包整个项目代码包,在控制台上传代码,指定入口函数 在线调试,查看crm跑在云函数上的实际效果,如果有错误可在控制台查看错误日志 >>>> 安装包链接...://github.com/rangeli1992/scf_laravel_crm 后面传上去 参会须知 1.

    1.6K20

    GraphQL API渗透测试指南

    SQL注入GraphQL API同样会可能存在SQL注入漏洞,可以对查询结构体的一些参数进行SQL注入尝试。这里对“test”参数进行SQL注入尝试。加上单引号后返回报错信息。...攻击载荷成功解析,此外也可以利用上传功能上传HTML脚本进行攻击测试。...目录穿越/任意文件写入在GraphQL API相关文件上传/下载操作也可能存在目录穿越、任意文件读取、任意文件写入等漏洞。例如通过目录穿越成功任意文件写入。成功上传至tmp目录。...工具除了传统的渗透测试工具以外,使用GraphQL API的工具也变得十分重要。...inql:GraphQL测试工具, 可以独立使用,也可作为Burp扩展使用,https://github.com/doyensec/inqlvoyager:GraphQL API交互可视化工具,https

    1.2K30

    GraphQL最突出的架构优势是什么?

    在开发工作早期,我们完全可以使用一个端口的内存内实现。 通过依赖注入方法,这种架构还会让开发人员优先编写可以测试的代码。这样我们就可以尽可能地减少可能导致代码不可测试的具体依赖项。...我们可以使用 @client 指令来引用要基于一个客户端模式从本地缓存获取的属性。...对于突变,解析器可以简单地将控制权传递给一个应用层用例。 将用例作为应用程序的重心后,从 REST 切换到 GraphQL(或同时支持两者)变得轻而易举。...使用 GraphQL Playground,可以浏览 GraphQL 端点的所有功能。...在架构层面,由于 GraphQL 仅向客户端公开单个端点,因此它满足了这一原则。 客户端隐藏了字段解析机制的所有复杂性,它只需关注如何在 GraphQL 服务器之上构建即可。

    2.1K20

    使用ChatGPT-4优化编程效率:高效查询代码示例和解决方案

    何在Django设置一个多对多的关系? 我可以在Node.js中使用什么库进行单元测试? 怎样在Go实现并发操作? 如何在Ruby on Rails中进行数据库迁移?...我需要一个在PHP中进行文件上传的例子,可以吗? 如何在Android创建一个自定义视图? 在Swift,如何使用闭包进行回调操作? 怎样在Rust处理错误?...如何使用JUnit进行Java单元测试? 在Elasticsearch,如何实现一个模糊查询? 如何在Arduino读取温度传感器的数据? 在OpenGL,如何渲染一个立方体?...如何在Spring Boot实现JWT身份验证? 在Linux,如何设置定时任务? 我怎样才能在Azure中部署一个容器化应用? 如何使用GraphQL查询数据?...在Unity,如何实现一个简单的角色控制器? 我需要一个在C#连接SQL Server的例子。 如何在iOS获取设备的位置? 在Laravel,如何实现邮件发送功能?

    25310

    何为GraphQL

    : true })); app.listen(3000); module.exports = app; 把graphiql设置为true使我们能够用一个很优秀的内置在浏览器的IDE来测试服务器。...我强烈推荐使用它来测试不同的查询。 ? 使用GraphQL的特别查询 ? 一切都设定好了。 让我们导航到http://localhost:3000/graphql并找点乐子。...我们可以定义GraphQL变动来执行操作,添加,更新和删除图中的数据。 首先,让我们在模式添加一个变动类型。...该实现简单地使用查询提供的参数并向data['allPlayers']添加新对象。 它也确保我们正确地设置了球队。 最后,它返回新的球员。...您可以在查询修改数据,并且您可以仅返回来自变动(mutation)的数据。 GraphQL不会窥探你的代码。 查询和突变都可以接受参数并返回数据。 它更像是语法糖,让你的模式更具人性化。 ?

    3.5K60

    Laravel 表单方法伪造与 CSRF 攻击防护

    POST:向指定资源提交数据,请求服务器进行处理,:表单数据提交、文件上传等,请求数据包含在请求体。POST 方法是非幂等的方法,因为这个请求可能会创建新的资源或修改现有资源。...我们可以在命令行通过 curl 进行一些简单的测试: ?...答案是通过表单方法伪造,下面我们就来介绍如何在 Laravel 中进行表单方法伪造。...表单请求方法伪造 要告知 Laravel 当前提交的表单使用的是 GET/POST 之外的其他请求方式,需要在表单添加一个名为 _method 的隐藏字段,字段值是「PUT」、「DELETE」或 「PATCH...注:如果你使用Laravel 自带的 assets/js/bootstrap.js, 则上述 Vue 请求头设置不需要自己编写,因为 bootstrap.js 已经包含了这个逻辑。

    8.7K40

    使用ASP.NET Core支持GraphQL -- 较为原始的方法

    GraphQL 对你的 API 的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。...GraphQL由Facebook开发,始于2012年,2015年公开。 GraphQL牛逼之处是它可以让客户端精确的查询它们想要的,不附加额外的东西,这样的话就很容易让客户端随着API的演进去使用。...建立项目 下面我们就在ASP.NET Core实现这个功能,首先建立项目:  使用dotnet cli 在命令行输入: dotnet new web --name graph 这样会建立一个ASP.NET...测试 运行ASP.NET Core项目: dotnet watch run ? 打开POSTMAN,首先按id查询一个Person:  ? Cool,没问题。...结语 这只不过是使用ASP.NET Core支持GraphQL的一个原始手动实现而已。

    1.1K20

    Rust 和 Wasm 的融合,使用 yew 构建 web 前端(4)- 获取 GraphQL 数据并解析

    今天,我们介绍如何在 yew 开发的 wasm 前端应用,与后端进行数据交互。我们的后端提供了 GraphQL 服务,让我们获取 GraphQL 数据并解析吧!...,可以实现与查询描述文件( all_users.graphql查询同名的结构体。...本文实例,为了演示,我们将令牌(token)获取后,作为字符串传送,实际应用代码,当然是作为 cookie/session 参数来获取的,不会进行明文编码。...宏,是不能使用 for in Vec 这样的循环控制语句的,其也不能和 html! 宏嵌套使用。但 html!...如果你下载源码,也可以使用浏览器的性能基准测试功能,简单对模板引擎开发的 web 前端,和 yew 开发的 web 前端进行性能的粗略比较。

    8K30
    领券