このブログでは、Javaエンジニアから注目されており、成長中のプログラミング言語、Kotlin で RESTful API を開発する方法を学んでいきます。CRUD 操作を処理する小規模な Spring Boot RESTful API を作成することから始めます。その後、Auth0 でこの API をセキュア にし、それによって 多要素認証、ソーシャルプロバイダーとの統合などたくさんのセキュリティ機能を提供します。最終的には、JWT を自分たちで管理する方法も学び、独自のトークンを発行する社内ソリューションをAuth0に置き換える方法を学びます。
Kotlinとは何か
Kotlin は JetBrains が開発したプログラミング言語で、Java 仮想マシン(JVM)で実行し、JavaScript にもコンパイルされます。このプログラミング言語は静的型付けされ、変数、関数、式はコンパイル時間の確認ができるタイプの事前定義された値セットを使用します。
その主要目的のひとつは Java に伴って起きる問題を解決することです。例えば、Java と比較して Kotlin で書かれたソフトウェアはコード行がおよそ 40% 少ないと想定されていますが、Java に使用できる充実したライブラリのセットと相互運用できます。
Kotlin と Java はどのように違うか
まず最初に、構文です。Kotlin の構文は Java のものと若干似ていますが、違いもたくさんあります。JetBrains は、Java 開発者が Kotlin に移動するときになめらかな学習曲線になると説明しています。これは真実ですが、Kotlin 開発者になることや、新しい言語で慣用的コードを書くことはそんなに容易ではありません。
Kotlin の特化について学習すれば、Kotlin は独自のグロッサリがある高度なプログラミング言語であることに気づかれると思います。例えば、Kotlin には データクラス、シールクラス、インライン関数、その他多数の機能があります。これら機能のほとんどは Java でミラー化できますが、かなり詳細なコードを書かずにはできませんから、真に慣用的な Kotlin ソースコードは JetBrains が言うように簡単ではありません。
しかし、ご安心ください。JetBrains は開発者が Java ソースコードを Kotlin に移動できるようなツールを開発しました。Kotlin の Web サイト には Java から変換 というボタンがあります。このボタンは、Java コードを貼り付けして Kotlin のバージョンにすることができます。そのほかに、IntelliJ IDEA にも開発者がこれら変換を実行する機能があります。
(つづく)
この続きは、以下のAuth0ブログで解説しております。
Auth0 統合認証プラットフォーム
Auth0はWebアプリやモバイル、APIなどに対して認証・認可のサービスをクラウドで提供している、いわゆるIDaaS (Identity as a Service)ベンダーです。企業がもつWebアプリケーションやAPI, Native Mobile Appなどでユーザー認証や認可、セキュリティを組み込みたいけれでも実装が難しい・・・という方にオススメのソリューションを提供しています。
Githubに様々なプラットフォーム用のサンプルソースを公開
Auth0は今回のチュートリアルで使用したサンプルプログラムをはじめ、様々なプラットフォーム・フレームワーク用のサンプルプログラムをGithubに公開しています。今回紹介したKotlinやSpring Boot以外にも多数のフレームワーク用のソースを公開していますので、お試ししてはいかがでしょうか。
[Githubリポジトリ - Auth0] (https://github.com/auth0)
実際にAuth0を利用するには
Auth0のサービスは契約をしなくとも無償で評価(フリートライアル:22日間)をすることができます。フリートライアルは、Auth0のホームページにアクセスし、画面右上のをクリックするとトライアル登録が行うことができます。ユーザー登録にはGitgubやGoogle, Microsoftアカウントを使用してサインアップすることできますので、試してみてはいかがでしょうか?