はじめに

本書ではRustを使ってウェブアプリケーションを開発する方法を学びます。

本書の見方

本書は

  • DjangoExpress などのフレームワークを使い、チュートリアルに沿ってウェブアプリ開発を試したことがある
  • Rust By Example の内容がだいたい分かる

というレベル感の方を対象に、rustでのウェブアプリの開発が理解できるようになることを狙いとしています。

各ページごとに、サンプルアプリの実装を進めながら実装のポイントをおさえていきます。

学習に利用するサンプルアプリ

サンプルアプリとして Twitter クローンを実装してみます。

下記に各種設計資料を示しますが、今回はグレーになっていない部分を実装します。

URL設計

各画面のURLをどうするか検討しておく必要があります。

メソッド&パス画面処理内容処理後の表示内容ログイン
GET /ホーム画面ツイート一覧を取得する-必須
POST /tweets/new-投稿フォームの内容に従ってツイートを作成するホーム画面必須
POST /tweets/:id/delete-指定されたIDのツイートを削除するホーム画面必須
GET /loginログイン画面---
POST /account/session-メールアドレスとパスワードでログイン認証するホーム画面 or ログイン画面-
GET /registerアカウント作成画面--
POST /account/new-フォームの内容でアカウントを作成するホーム画面-

ユースケース

ユーザーの要求とシステムの振る舞いを視覚的に明確化したものがユースケース図です。

ユースケース

ロバストネス分析

ユースケースを、よりシステムの観点で記載したものがロバストネス分析図です。

ロバストネス分析

ドメインモデル

ビジネスモデルをデータの観点で洗い出したものがドメインモデル図です。

今回はそこまで複雑な機能は作り込まずシンプルなモデリングにしているため、登場するドメインモデルは少なめになっています。

ドメインモデル