GraphQL

GraphQL vs OpenAPI スキーマ駆動開発比較

こんにちは、マットです。 都内ITベンチャーのエンジニアです。 普段はGo/Next.jsを中心に使っています。 今回はGraphQLとOpenAPIの開発を比較していきたいと思います。 筆者は本業のプロジェクトでGraphQLを、副業でOpenAPIを使用しています。 アプリケーシ…

Go × GitHub Actions CI構築 ~ MySQL・Redis docker-compose 別リポジトリをGit clone する~

こんにちは、マットです。 都内ITベンチャーのエンジニアです。 Go/Next.js/GraphQLを使っています。 今回はGitHub ActionsでGoのAPIサーバーのCI構築を行いたいと思います。 GitHub Actionsのチュートリアル的な部分には触れませんのでご留意ください。 TL;…

GraphQL APIエラー Go gqlgenで実装

こんにちは、マットです。 都内ITベンチャーのエンジニアです。 Go/Next.js/GraphQLを使っています。 今回はGraphQLのエラーについて復習してみました。 また、簡単ではありますがgqlgenを使ってカスタムエラーを実装してみたいと思います。 GraphQLのエラー…

GraphQL Subscriptionを Redis KeySpaceで実装する ~その2~

こんにちは、マットです。 都内ITベンチャーのエンジニアです。 Go/Next.js/GraphQLを使っています。 今回は 前回に続き GraphQLのSubscriptionをRedisのkeyspace notificationを使って実装していきたいと思います。 前回はkeyspaceの概要編でしたが今回は実…

Go GraphQL AWS S3への画像アップロード

こんにちは、マットです。 都内ITベンチャーのエンジニアです。 Go/Next.js/GraphQLを使っています。 今回はGraphQLで画像のアップロードを行なっていきたいと思います。 アップロード先のストレージにはAWSのS3を使用します。 尚、この記事ではS3のバケット…

Go GraphQl Redis PubSub でリアルタイムチャット (gqlgen websocket)

こんにちは、マットです。 都内ITベンチャーのエンジニアです。 Go/Next.js/GraphQLを使っています。 今回は色々なWebサービスで見かけるチャットアプリケーションのバックエンドサーバーを構築していきたいと思います。 様々な技術を使用しますが、主にGoと…

gqlgen directive @goField と Global Object Identification

今回はgqlgenの機能を使って Relayの仕様であるGlobal Object Identificationの実装を行なっていく。 Global Object Identificationとは GraphQLのクライアントライブラリRelayで定められたIDフィールドの実装方法。 relay.dev ざっくりとした説明は 全スキ…

GraphQL ページネーション Go gqlgen

GraphQLの必須項目ページネーションの実装方法を理解する。 使用技術 Go1.13 × gqlgen v0.13.0 ページネーションとは APIのクエリを制限する方法。 返却するデータの量を制限する事ができる。 クエリの負荷を事前に計算できる。 GraphQLのページネーション G…

Apollo Client (React) 触ってみた。 Mutations編

前回の続き https://shikatech.hatenablog.com/entry/2021/07/03/222958 Mutations GraphQLのMutationを実行するHooks https://www.apollographql.com/docs/react/data/mutations/#prerequisites const [addTodo, { data }] = useMutation(ADD_TODO); useQue…

Apollo Client (React) 触ってみた。 Query編

Apolloのドキュメントを読んだ時のメモ https://www.apollographql.com/docs/ まずは簡単なgraphQL APIを構築 https://github.com/DaisukeMatsumoto0925/graph_practice Front Next.ts (codegen) Backend Go (gqlgen) Apolloの構築 const createApolloClient…

GraphQL ID設計

きっかけ 本業で初めてGraphQLに触れた。 GraphQLでapiを叩く時、IDの仕様に癖があったので調べてみた。 参考 booth.pm 本題 そもそもGraphQlのスキーマ設計は何を基準に行うべきなのか? GraphQLスキーマ設計ガイド 第2版 - わかめの自動売り場 - BOOTH で…