👁

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 とデータベースの設計判断(エンドポイントの粒度、テーブル分割、リレーション設計、インデックス選定など)
まとめ 設計中に苦労したこと、判断に迷ったこと、学んだこと

設計・構築課題の伴走はプレミアムプランでご利用いただけます。

プランのアップグレード

3. メンタリング報告

以下の内容をメンタリングで報告してください(メンタリングはプレミアムプランでご利用いただけます)。

3.1 講座の振り返り

以下の要素それぞれについて、3つの観点で報告してください。

対象の要素

  • データベース操作
  • REST API のフレームワーク(FastAPI or net/http)
  • ORM(SQLModel or GORM)
  • 静的解析
  • 自動テスト

報告観点

  • 概要
  • 何ができるのか?
  • 使うときに気をつけるべきこと

3.2 提出課題の説明

提出した API 仕様書・データベース仕様書をもとに、以下の内容を報告してください。

  • API とデータベースの設計判断(エンドポイント設計・テーブル設計・リレーション・インデックスなど)
  • 設計中に迷った点、判断に悩んだ箇所

この教材は役に立ちましたか?

いいねをたくさんいただけると、制作者の励みになり、より多くのセクションが作れるようになります。

感想を一言(任意)

いただいたコメントは次の制作のヒントになります。ぜひお気軽にご投稿ください。

このコメントは他の受講生には公開されません。DevOps Camp運営が、教材改善のために確認します。

0 / 2000