graphql-laravel maintained by johnlui
webonyx/graphql-php 的 Laravel 适配,魔改原库,将其彻底融入 Laravel 生命周期。
功能
- 接入 Laravel Middleware
- 依赖 Laravel Exception 处理异常流程
- 完美接入 Eloquent
- 提炼出 GraphQL 路由
- 提供 Types 文件夹,并提供强大的 Type 基类
- 提供 QueryFields 文件夹,提供类似于 Controller 归类的功能
- 暴露用户请求字段给 QueryField,便于节约资源、并发 RPC 等后续操作
- 提供 JSON API 语境下的调试函数
cc()
用法
安装 Composer 包
composer require johnlui/graphql-laravel
部署开发目录及配置文件到 app 下
php artisan vendor:publish
快速入门
app\GraphApp为工作文件夹Routes.php为路由文件QueryFields目录存放响应代码Types目录存放自定义类型config/graphql.php为配置文件
demo
query:
query ($id: Int) {
foo(id: $id) {
id
foo
bar
}
}
variables:
此处为 JSON 格式描述,开发时应使用 key-value 形式描述 variables,不应该使用 JSON 字符串。
{
"id": 200
}
启动 server
php artisan serve
url
http://127.0.0.1:8000/graphql
修改默认路径请编辑config/graphql.php中的apiUri。
curl raw 代码描述
curl --location --request POST 'http://127.0.0.1:8000/graphql' \
--header 'Content-Type: application/json' \
--data-raw '{"query":"query($id: Int) {\n foo(id: $id) {\n id\n foo\n bar\n }\n}","variables":{"id":200}}'
返回值
{
"status": 0,
"message": "OK",
"values": {
"foo": {
"id": 200,
"foo": "foo",
"bar": "bar"
},
"queries": []
}
}
License
The johnlui/GraphQL-Laravel is open-sourced software licensed under the MIT license