GolangとServerless FrameworkでGraphQLのAPIを作成 + 動作確認してみる

Building a Golang GraphQL API on AWS Lambda – A man with no server – Mediumという記事を見つけました。
こちらを参考に、Serverless Frameworkを用いてGraphQLのAPIを作成してみました。

主なロジックは上記の記事とほぼ同様なのですが

  • デプロイ周りにServerless Frameworkを使ってみた
  • struct毎にファイルを分割してみた

などの改修を行なっています。

私が作ったソースは以下に上げてありソース自体の説明は不要かと思いますが、デプロイ方法と動作確認の方法について書いておきたいと思います。
GitHub - SrcHndWng/go-learning-graphql-serverless

デプロイ

  • Serverless Frameworkがインストールされていること
  • AWSのアカウントを持っていてクレデンシャルの設定が済んでいること

が前提となります。

githubからソースをcloneする、もしくは以下のコマンドでプロジェクトを作成します。

$ serverless create -u https://github.com/serverless/serverless-golang/-p プロジェクト名

プロジェクトのフォルダに移動してビルドします。

$ GOOS=linux go build -o bin/main

デプロイします。

$ serverless deploy

動作確認

curlAPIを叩いてもいいのですが、今回はGraphiQL.appを使用しました。
ちなみに実行環境はMacとなります。

GitHub - skevy/graphiql-app: Light, Electron-based Wrapper around GraphiQL

GraphiQL.appをインストールし、クエリとして以下のように入力して結果が返ってくれば成功です。

{
  person(id: 1002){
    id
    firstName
    lastName
  }
}