Step2: バックエンド2
このStepでは、バックエンド言語(Python または Go)の後半(DB操作・REST API・静的解析・自動テスト)を学び、Step 1 で選んだテーマに対する API 仕様書とデータベース仕様書を作成します。
1. 講座の履修
Step 1 で選んだ言語の後半を実施してください。すでに同等の知識がある場合は、講座の履修はスキップしても構いません。
1.1 Python を選んだ場合
Python講座 の以下の章を実施してください。
1.2 Go を選んだ場合
Go講座 の以下の章を実施してください。
2. 課題の実施
2.1 目的・背景
Step 3 でバックエンドを実装する前に、API とデータベースの設計を仕様書としてまとめます。ここで設計を固めておくことで、以降のバックエンド実装(Step 3)とフロントエンド設計(Step 4〜5)の土台になります。実際にメンタリングで講師と相談する前提なので、ドラフト案で構いません。
2.2 実施要件
API仕様書
Step 1 で決めたテーマに沿って、以下の項目をすべて含む API 仕様書を作成してください。形式はマークダウン、Google スプレッドシート、Excel など自由です。
API全体に関する項目:
- APIの概要: どんな機能を持つ API か、対象となるデータは何かを記載する
- 共通仕様: ベース URL、日時フォーマット、ページネーションの仕様などを記載する
- 認証方式: API の認証方法(API キー、Bearer Token など)を記載する
- ステータスコード一覧: API 全体で使用する HTTP ステータスコードとその意味を一覧にまとめる
- エンドポイント一覧: 全 API のメソッド・パス・概要を一覧表にまとめる
各APIの詳細仕様(すべてのエンドポイントについて記載):
- リクエストパラメータ: パラメータ名・型・必須/任意・説明を表形式で記載する
- リクエストボディの JSON 例: 実際のリクエスト例を JSON で記載する
- レスポンス: フィールド名・型・説明を表形式で記載する
- レスポンスの JSON 例: 実際のレスポンス例を JSON で記載する
- エラーレスポンス: 想定されるエラーのステータスコードとエラー内容を記載する
サンプル: sns-camp を例にした API 仕様書サンプル
データベース仕様書
Step 1 で決めたテーマに沿って、以下の項目をすべて含むデータベース仕様書を作成してください。形式はマークダウン、Google スプレッドシート、Excel など自由です。
全体に関する項目:
- データベース概要: どんなデータを扱うデータベースかを記載する
- テーブル一覧: 全テーブルの名称と概要を一覧表にまとめる
各テーブルの詳細仕様(すべてのテーブルについて記載):
- テーブル概要: そのテーブルが何を保存するかを記載する
- カラム定義: カラム名・型・必須/任意・制約(主キー・外部キー・UNIQUE など)・説明を表形式で記載する
- インデックス: 検索・並び替えの効率化のためインデックスを張るカラムと、その用途を記載する
サンプル: sns-camp を例にした DB 仕様書サンプル
ER図
ER図は、テーブル間のリレーション(1対1/1対多/多対多)を線と記号で表現した図です。データベース仕様書と併せて作成してください。
draw.io などの図作成ツールで作成してください。
サンプル: sns-camp を例にした ER 図サンプル
2.3 課題提出
下記内容を提出フォームより提出してください(提出はプレミアムプランでご利用いただけます)。
| 項目 | 内容 |
|---|---|
| API仕様書 | 全体項目(概要・共通仕様・認証方式・ステータスコード一覧・エンドポイント一覧)と各エンドポイントの詳細を含む API 仕様書を添付、またはリポジトリ/ドキュメントの URL |
| データベース仕様書 | 全体項目(概要・テーブル一覧)と各テーブルの詳細(カラム定義・インデックス)を含むデータベース仕様書を添付、またはリポジトリ/ドキュメントの URL |
| ER図 | draw.io などの図作成ツールで作成した ER図を、画像として添付、またはリポジトリ/ドキュメントの URL |
| 設計判断 | API とデータベースの設計判断(エンドポイントの粒度、テーブル分割、リレーション設計、インデックス選定など) |
| まとめ | 設計中に苦労したこと、判断に迷ったこと、学んだこと |