はじめに
コースの目的とREST APIの基本概念を学びます。
このコースで作るもの
+ Express を使って、勤怠管理API を作ります。
従業員の出勤・退勤を管理するシステムのバックエンド部分です。ブラウザやアプリから送られてくるを受け取り、データを処理して返す を実装します。
| 機能 | 説明 |
|---|---|
| 勤務記録の一覧取得 | 全員の勤務記録を一覧で返す |
| 特定の記録を取得 | IDを指定して1件の記録を返す |
| 出勤打刻 | 出勤時刻を記録する |
| 退勤打刻 | 退勤時刻を記録する |
| 記録の修正 | 打刻ミスを修正する |
| 記録の削除 | 不要な記録を削除する |
前提条件
このコースを始める前に、以下を完了してください。
| 前提 | 内容 |
|---|---|
| Web APIのためのHTTP入門 | ・ステータスコード・リクエスト/の基本を学ぶ |
| Node.js | JavaScriptを実行するためのソフトウェアNode.jsについて学ぼう |
| TypeScript入門 | TypeScriptの基本文法(型、、インターフェース) |
とは
アプリはという仕組みでデータのやり取りを行います。Web APIにはいくつかの設計スタイルがあり、その中で最も広く使われているのがRESTです。RESTの原則に従って設計されたAPIをと呼びます。
REST APIの特徴
REST APIでは、 で「何をしたいか」を表現します。
| 意味 | 例 | |
|---|---|---|
| GET | データを取得する | 勤務記録の一覧を取得 |
| POST | データを作成する | 新しい出勤記録を作成 |
| PUT | データを更新する | 打刻時刻を修正する |
| DELETE | データを削除する | 記録を削除する |
自体はどのWeb APIでも使いますが、設計スタイルによってはすべての操作をPOSTで送るケースもあります(例: GraphQL APIでは、データの取得も作成もすべてPOSTで送り、の中身で操作を指定します)。
操作の種類に応じてを使い分け、「何をしたいか」をURLとで明示できるのがREST APIの特徴です。実際にはヘッダーやリクエストボディも含めて全体で意味を表現しますが、URLとだけでも操作の意図が読み取れるように設計するのがRESTの考え方です。
APIの「住所」にあたるものを と呼びます。
このコースで作るは以下の通りです。
| パス | 機能 | |
|---|---|---|
| GET | /records | 勤務記録の一覧取得 |
| GET | /records/:id | 特定の勤務記録を取得 |
| POST | /records/clock-in | 出勤打刻 |
| POST | /records/clock-out | 退勤打刻 |
| PUT | /records/:id | 打刻の修正 |
| DELETE | /records/:id | 記録の削除 |
GETと/recordsを見ただけで、『記録を取得するんだな』と一目で分かりますよね。
これがREST APIの特徴です。
技術スタック
このコースで使う技術です。
| 技術 | 役割 |
|---|---|
| プログラミング言語(型安全なJavaScript) | |
| JavaScriptをサーバーで動かすための | |
| Express | .js用の(APIを簡単に作れる) |
| Vitest | テストフレームワーク |
Express はNode.jsで広く使われているの一つです。
学習コストが低く、初心者にもとっつきやすいため、このコースでは Expressで解説します。
情報量が多いため、困ったときに自力で調べやすいのも大きなメリットです。
データベースについて
このコースでは データベースは使いません。
データはTypeScriptの配列(インメモリ)で管理します。サーバーを再起動するとデータはリセットされますが、API開発の学習に集中するためにこの方式を採用しています。
次のステップ
REST APIの概念を理解できたところで、次のレッスンでは開発環境を構築していきます。