はじめに

この記事はC3 Advent Calendar 2022 17日目の記事です

今回の記事では,RustでBearer認証が行える程度の簡単なGraphQLサーバーを作成していきたいと思います。

使用技術

使用した主要な技術は以下の通りになっています。

actix-web (rustのwebフレームワーク)

juniper (rustのgraphqlライブラリ)

diesel (rustのorm)
postgresql
docker

動かしてみる

ソースコードは以下のリポジトリにあります。
https://github.com/yamato0211/rust-graphql-tutorial

参考にさせていただいた記事です。
【Rust】GraphQL API Serverを作ってみる話。(1/?) ~導入編~

※README.mdに環境構築の設定などがまだ記述できていません。申し訳ない。なるはやで書きます。

APIサーバーやDBサーバーを起動して、http://localhost:8000/playgroundにアクセスすると、、、

image.png

新規登録とログインの機能を実装しているので実際に行ってみます。

まずは新規登録から以下のようなMutationを投げてみます。

image.png
image.png
image.png

実行すると、

image.png

他のqueryやmutationを実行するときにはAuthorizationヘッダーにこのトークン情報を入れて実行します。
試しに、すべてのユーザー情報を取得するqueryを投げてみたいと思ます。

以下のようにヘッダーも記述して以下のようなqueryを実行してみます。

image.png

登録されたユーザーがすべてかえってきています。

image.png

最後に

今回はrustのactix-webとjuniperを使用して認証サーバーを作成してみました。
実行結果のみでコードについて詳しく説明ができなかったので、その他もろもろの説明も近日中に書き上げます。

明日のC3 Advent Calendar 2022はシモ先輩の「SPA・SSGにおける動的OGP生成」です.お楽しみに!

bannerAds