目次

本書について
対象読者
本書の執筆環境と動作環境
サンプルコード
免責事項
表記関係について
第1章 フレームワークの紹介
1.1 Ktor
1.2 Nuxt.js
第2章 プロジェクトを作ろう
2.1 Ktorプロジェクトを作る
2.2 Nuxtプロジェクトを作る
第3章 データベースの準備
3.1 データベースへの接続
3.2 DBマイグレーション
第4章 APIを作ろう
4.1 EntityとDao
4.2 Serviceクラス
4.3 CRUD用API
4.4 ルーティングの登録
第5章 UIを作ろう
5.1 ダミーデータ
5.2 ナビゲーションバー
5.3 TODO一覧
5.4 追加・編集・削除
第6章 サーバとフロントを連携しよう
6.1 AxiosとProxyの設定
6.2 検索
6.3 新規登録・更新・削除
第7章 Herokuに公開しよう
7.1 Herokuとは?
7.2 Heroku CLIの導入
7.3 サーバサイドのデプロイ
7.4 フロントエンドのデプロイ
第8章 認証
8.1 JWTトークン
8.2 アカウントテーブル
8.3 サーバ側認証処理
8.4 ログイン処理の実装
8.5 JWTトークンを設定する
第9章 DIコンテナ
9.1 DIコンテナの導入
9.2 インタフェースと実装クラス
第10章 ユニットテスト
10.1 テストフレームワークの導入
10.2 プロジェクトディレクトリ構成の変更
10.3 テストクラスの作成
第11章 E2Eテスト
11.1 TestCafe
11.2 環境構築
11.3 TODOの新規登録をTestCafeで実行してみよう
第12章 ドメイン駆動設計
12.1 ドメインモデリング
12.2 アーキテクチャ
12.3 ドメインモデルの実装
12.4 infrastructure
12.5 interfaces
12.6 usecase
12.7 domain
12.8 まとめ
付録A 参考文献
おわりに

本書について

 本書は技術書典9「KtorとNuxt.jsで作るWebアプリケーション入門」、技術書典10「KtorとNuxt.jsで作るWebアプリケーション入門 Vol2」を再編集した本となります。

対象読者

 本書は対象読者として次のような方を想定しています。

 ・Webアプリケーションの開発を行ったことがある

 ・サーバサイドKotlinやNuxt.jsに興味があり、Webアプリケーションの作成に挑戦してみたい方

 ・ハンズオン形式でWebアプリケーションの開発を進めていきたい方

 ・就職・転職用にポートフォリオを作成したい方

 本書ではKotlinやNuxt.jsの基本文法や使い方については多くは触れませんので、言語仕様については公式ドキュメントを参照していただけると幸いです。

本書の執筆環境と動作環境

 執筆時点(2022.2.27)でLTSとなるバージョンを採用するようにしています。本書では次の開発環境を前提にしております。

 ・Docker 20.10.12

 ・Docker Compose 1.27.4

 ・Java 11.0.12

 ・Kotlin 1.6.7

 ・Node.js v16.14.0

 ・Yarn 1.22.17

 環境構築については記載は行いませんが、JavaやKotlin、Node.jsは次のツールを利用していますので参考にしてみてください。

 ・SDKMAN1

 ・nodebrew2

サンプルコード

 本書のサンプルコードはGitHubに置いてあります。次のリポジトリからコードをダウンロードするか、Gitでチェックアウトしてご利用ください。

 ・ktor-todo-exmaple3

 ・nuxt-todo-exmaple4

 8章以降については別リポジトリからダウンロード可能となっていますのでご注意ください。

 ・ktor-todo-example-25

 ・nuxt-todo-example-26

免責事項

 本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。

表記関係について

 本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。

1. https://sdkman.io/

2. https://github.com/hokaccha/nodebrew

3. https://github.com/chichi1091/ktor-todo-exmaple

4. https://github.com/chichi1091/nuxt-todo-exmaple

5. https://github.com/chichi1091/ktor-todo-example-2

6. https://github.com/chichi1091/nuxt-todo-example-2

第1章 フレームワークの紹介

 本書で利用するフレームワークについて紹介します。

1.1 Ktor

 Ktor1とはIntelliJ IDEAなどのIDEやKotlinを開発しているJetBrains社が作成した軽量Webフレームワークです。All Kotlinで開発されており、特徴として「薄い」フレームワークで必要な機能(feature)を追加していくことで新たな機能を利用することができます。サーバサイドでKotlinといえばSpring Bootを選択することが多いと思いますが、Ktorは2018年11月にv1.0.0がリリースされ、2021年12月現在v1.6.7までアップデートされており、本格的に利用しても良さそうに感じます。次は追加できる主な機能(feature)になります。

 ・ktor-thymeleaf:テンプレートエンジン

 ・ktor-websockets:WebSocket

 ・ktor-jackson:JSON

 ・ktor-auth:認証

1.2 Nuxt.js

 Nuxt.js2は、Vue.jsの公式ガイドラインにそって強力なアーキテクチャを提供するように設計されたフレームワークです。サーバサイドレンダリングを行うアプリケーションの開発に必要な設定が、あらかじめ行われているのが特徴で次のパッケージが含まれています。(2022年3月時点、Vue.js 3がリリースされていますが本書ではVue.js 2を利用しています)

 ・Vue2:Vue.js本体

 ・Vue-Router:ルーティング管理

 ・Vuex:状態管理

 ・Vue Server Renderer:サーバサイドレンダリング

 ・Vue-Meta:メタ情報管理

1. https://jp.ktor.work/

2. https://ja.nuxtjs.org/

試し読みはここまでです。
この続きは、製品版でお楽しみください。