0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C3Advent Calendar 2022

Day 17

Rustでgraphqlサーバーを作る!

Last updated at Posted at 2022-12-17

はじめに

この記事は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
登録が完了します。次にログインを行ってみます。

以下のqueryを実行してみます。
image.png

実行すると、

image.png
うまくログインが行われてjwtトークンが返ってきます。

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

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

image.png

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

image.png
idを指定してユーザー情報をとってくることもできます。

最後に

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

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?