使用Lighthouse-PHP构建的Laravel Graphql服务器

大家好,最近一直失踪了,很抱歉,因为工作很忙,找不到时间更新博客。

大家好,很抱歉最近消失了,但是工作很忙,没有时间更新博客。

我们开始吧。

使用Docker容器安装Laravel。

使用Docker容器安装Laravel

使用Docker创建Laravel项目

进行初期移行

运行初始迁移

sudo docker-compose exec app-server php artisan migrate
安装 Lighthouse PHP

安装lighthouse-php

安装lighthouse-php

docker run --rm -v $(pwd):/app composer require nuwave/lighthouse

发布GraphQL的默认模式

发布GraphQL的默认模式

sudo docker-compose exec app-server php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider" --tag=schema

在app服务器上,请确保没有忘记更改用于docker-compose文件的名称。

在应用服务器端,请记得根据你在docker-compose文件中使用的名称进行更改。

安装 Graphql Playground

以下的步骤是可选的,但推荐安装graphql-playground。

下一步是可选的,但建议安装graphql-playground。

docker run --rm -v $(pwd):/app composer require mll-lab/laravel-graphql-playground

游乐场的网址是http://localhost/graphql-playground。

游乐场的网址是http://localhost/graphql-playground。

构成

再次运行容器,并执行 docker-compose up –build。

将GraphQL的默认设置导出

再次运行容器,使用docker-compose up –build命令。

导出GraphQL的默认配置

docker-compose exec app-server php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider" --tag=config
突然异变和查询

在执行查询之前,需要先插入数据。首先创建一个变异。

在进行查询之前,我们需要插入数据,让我们先创建一个突变。

sudo docker-compose exec app-server php artisan lighthouse:mutation createUser

通过这个操作,在 app\graphql\mutations 文件夹中会创建一个名为 CreateUser.php 的文件。

我们来添加一个简单的解析器吧。

这将在 app\graphql\mutations 文件夹中创建一个名为 CreateUser.php 的文件。

让我们添加一个简单的解决方案。


public function __invoke($rootValue, array $args, GraphQLContext $context, ResolveInfo $resolveInfo)
    {
        $args["password"] = Hash::make($args["password"]);

        return User::create($args);
    }

在schema.graphql文件中添加根变更

将路由变更添加到 schema.graphql 文件中

type Mutation {
    createUser(name: String!, email: String!, password: String!): User
}

通过使用这种方法,我可以轻松地制造出不眠症。 这就是我制造突变的方法。

或者,您可以使用 http://localhost/graphql-playground 提供的Playground。

通过这个,你可以创建一个简单的突变,因为我正在使用失眠,这是我创建突变的方法。

或者你可以在http://localhost/graphql-playground上使用游乐场。

Insomnia POST : http://localhost/graphql
Playground : http://localhost/graphql-playground

mutation{
  createUser(name:"My Name",email:"my@email.com",password:"mypassword"){
    id,
    name,
  }
}

当收到200时,我们可以确认响应已经是JSON格式的。我们可以创建查询请求来验证用户。

一旦你得到了200,你可以看到响应已经是一个 JSON,我们可以通过发出查询请求来检查用户。

POST: http://localhost/graphql
Playground : http://localhost/graphql-playground

query{
  users{
    data{
      id,
      name,
      email
    }
  }
}
广告
将在 10 秒后关闭
bannerAds