SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

SpringOne 2021参加レポート~Spring Framework 6.0ロードマップ、クラウドネイティブ対応、DevSecOps

Spring GraphQL

 このセッションでは、AtlassianのAndreas Marek氏とVMwareのRossen Stoyanchev氏によるSpring GraphQLの紹介が行われました。

 GraphQLは比較的新しい技術ですが、RESTに代わるWeb API経由のデータ交換技術として既に実績があり、その使いやすさとコントロールのしやすさから、Webやモバイルのクライアントで急速に普及しています。

 Java向けのGraphQL実装としてはGraphQL Javaが以前から提供されていましたが、純粋なGraphQLの実行エンジンとして実装されているため、HTTP上でGraphQLのリクエストを扱うなどの機能がありません。

 Spring GraphQLはGraphQL Java上で動きますが、GraphQL Javaには不足している便利な機能を提供しています。

 Spring GraphQLで利用できる機能として、まずネットワークからGraphQLのリクエストを受け取り、GraphQL Javaの実行エンジンへ受け渡すためのHTTPハンドラーとWebSocketハンドラーが紹介されました。両ハンドラーとも、Spring MVCおよびSpring WebFluxの両方のフレームワークに対応しています。これらはGraphQL Javaでは提供されていなかった機能です。

 次に、Spring GraphQLのセキュリティについても説明がありました。Spring GraphQLで扱うデータや権限ごとに細かくアクセス制御をしたい場合、データレイヤーに Spring Securityのアノテーションを付与することで実現できます。ただしSpring MVCではコンテキストの伝播に注意が必要です。データレイヤーではサーブレットと同じスレッドで実行される保証がないため、従来のThreadLocalによるコンテキストの伝播ができません。そのためThreadLocalAccessorインターフェースが用意されており、これを実装することでコンテキスト情報の伝播を可能としています。WebFluxではReactorのコンテキストが伝播されるのでこのような心配は必要ありません。

 その他、下記の機能についても紹介がありました。

  • GraphQL Java Engineの初期化サポート
  • 例外解決サポート
  • アノテーションによるハンドラメソッドの指定
  • Querydslのサポート
  • テストサポート
  • Spring Boot Starter
Spring GraphQLの機能構成

 現在Spring GraphQLは1.0リリースに向けたMilestone段階にありますが、2022年からはRelease Candidate(RC)フェーズに入り、General Availability(GA)版が2022年5月にSpring Boot 2.7に統合された形でリリースされる予定であることが本セッションで発表されました。

 最後にStoyanchev氏は「Spring GraphQLを使ってみて要望をフィードバックしてほしい」と述べて、本セッションを締めくくりました。

次のページ
Testing with JUnit 5 and Spring

この記事は参考になりましたか?

イベントレポート連載記事一覧

もっと読む

この記事の著者

SpringOne 2021 参加チーム(SpringOne 2021 サンカチーム)

【NTT ソフトウェアイノベーションセンタ】谷口 展郎、岩塚 卓弥、水野 諭孝 【NTTデータ】田端 一也、高橋 寛恒 【NTTコムウェア】堅田 淳也、杉本 真梨

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/15022 2021/10/26 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー