【エクササイズ】掲示板APIを実装する【express】

課題
  • expressでCRUD機能を持ったAPIサーバーを実装する
  • GitHubに用意した課題の内容を確認して、課題クリアがこの記事でのゴール

課題内容は以下の課題レポジトリに記述しています。

課題レポジトリ

GitHub : js_excercise_for_backend_7

課題解決するために参考になる資料

Modelの準備

あわせて読みたい
【事前準備】Modelファイルの作成【配列でダミーのDBを作る】今回からAPIサーバーの実装について学習していきます。APIサーバーを実装するにあたって、一般的にデータの保存はデータベースで行いますが、このセクションではデータベースについて学習しません。このセクションの目的はModelの役割をイメージつけることと、APIサーバーの実装イメージをつけることです。...

今回の課題ではデータベースの代わりに、サーバー内で配列を用意して、その配列にコメントデータを保存していきます。

一般的なWebサービスではデータベースにデータを保存していきますが、今回の課題の目的は「expressを使ってCRUD機能を持ったRestfulなAPIサーバーを実装すること」であるため、実装を簡略化しております。

データベースを使ったAPIサーバーの実装は次回の課題「ORMを使ってexpressとDBを連携する」で行います。

既にAPIサーバーを実装した経験のある方は、次回の課題「ORMを使ってexpressとDBを連携する」から取り組んでいただいても問題ありません。

いきなりデータベースを使った実装にハードルを高く感じる場合は、今回の課題でAPIサーバーの実装方法を身につけていただけたらと思います。

データ取得系の機能実装

あわせて読みたい
【Model実装】Todo一覧を取得する機能を実装【テスト含む】 動画解説 スライド解説 スライドの解説を以下の記事でも行っております。上のスライドと以下の解説記事をあわせて使う...
あわせて読みたい
【Controller実装】Todo一覧を取得するAPIを実装する今回はAPIサーバーのControllerを作成して、Todo一覧を取得するAPIを実装します。また、作成したControllerとRouterを紐づけてルーティングの設定も行います。最後に、実装したAPIの挙動を確認するためにWebブラウザにアクセスして、Todo一覧が返ってくるのを確認します。...
あわせて読みたい
【テスト実装】Todo一覧を取得するAPIのテストを実装する今回はAPIのテストコードを書く方法を学習します。expressでサーバーのテストを書くときに便利な「supertest」というライブラリを使う以外は、今まで学習したテストコードの書き方と同じになります。今回の記事でサーバーのテストも書けるようになりましょう!...

今回実装するAPIサーバーはCRUD機能を持っています。

上の3記事は、CRUDのR、つまり「データの取得の機能実装」の参考になる記事をまとめたものになります。

データの取得周りの機能を実装する際には、上の3記事を参考にしていただけたらと思います。

「CRUD」は「Create(作成)」、「Read(読み込み・取得)」、「Update(更新)」、「Delete(削除)」の頭文字をとったものです。

つまり、CRUD機能を持ったAPIサーバーとは、以下の4つの機能を持ったAPIサーバーとなります。

  1. データの新規作成
  2. データの取得
  3. データの更新
  4. データの削除

データ新規作成系の機能実装

あわせて読みたい
【Model実装】Todo1件を新規作成する機能を実装【テスト含む】今回はTodo1件を新規作成するための機能をModelに実装します。また、機能実装だけでなく、実装した機能のテストコードの実装方法も学習します。機能実装と一緒にテストコードの実装も一緒に行うクセをつけていきましょう!...
あわせて読みたい
【Controller実装】Todo1件を新規作成するAPIを実装する今回はTodo1件を新規作成するAPIを実装します。新規作成を行う場合は、一般的にHTTPメソッドのPOSTを使います。また、GET以外のHTTPメソッドを使った処理の挙動を確認するために「Postman」というツールを導入しました。Postmanを使うことでAPIサーバーのデバッグが楽になります。...
あわせて読みたい
【テスト実装】Todo1件を新規作成するAPIのテストを実装する今回は「POST /api/todos」に対するAPIのテストを実装します。また、前回も利用したAPIテスト用のライブラリである「supertest」の共通処理をまとめたヘルパーメソッドの実装も行います。...

上の3記事は、CRUDのC、つまり「データの新規作成の機能実装」の参考になる記事をまとめたものになります。

データの新規作成周りの機能を実装する際には、上の3記事を参考にしていただけたらと思います。

データ更新系の機能実装

あわせて読みたい
【Model実装】既存のTodo1件を更新する機能を実装【テスト含む】今回は既存のTodoデータを更新するためのメソッド「update」メソッドを実装します。そして、updateメソッドがただしく動作することを保証するためのテストコードも実装します。スライド内容を参考に実際に手を動かして、機能追加、追加機能のテストコード実装の流れを掴んでいきましょう。...
あわせて読みたい
【Controller作成】既存のTodo1件を更新するAPIを実装する今回は既存のTodoデータ1件を更新するAPIを実装します。今回のスライドで学習できる内容は、expressの「req.params」の使い方と、PostmanでPUTメソッドを使ってAPIを実行する方法です。実際に手を動かして実装することでexpressのAPI実装の流れをイメージできるようになります。...
あわせて読みたい
【テスト実装】既存のTodo1件を更新するAPIのテストを実装する今回は「PUT /api/todos/:id」に対するAPIのテストを実装します。以前実装した「POST /api/todos」のテストと基本的には同じ内容となります。スライド記事で実装したテスト以外にも、「これもテストしたほうが良いと思う」というものがあったら、テストを追加していただいても問題ありません^^...

上の3記事は、CRUDのU、つまり「既存データの更新の機能実装」の参考になる記事をまとめたものになります。

データの更新周りの機能を実装する際には、上の3記事を参考にしていただけたらと思います。

データ削除系の機能実装

あわせて読みたい
【Model実装】既存のTodo1件を削除する機能を実装【テスト含む】今回は既存のTodoデータを削除するためのメソッド「remove」メソッドを実装します。そして、removeメソッドが正しく動作することを保証するためのテストコードも実装します。スライド内容を参考に実際に手を動かして、機能追加、追加機能のテストコード実装の流れを掴んでいきましょう。...
あわせて読みたい
【Controller作成】既存のTodo1件を削除するAPIを実装する今回は既存のTodoデータ1件を削除するAPIを実装します。今回のスライドで学習できる内容は、expressの「req.params」の使い方と、PostmanでDELETEメソッドを使ってAPIを実行する方法です。実際に手を動かして実装することでexpressのAPI実装の流れをイメージできるようになります。...
あわせて読みたい
【テスト実装】既存のTodo1件を削除するAPIのテストを実装する今回は「DELETE /api/todos/:id」に対するAPIのテストを実装します。以前実装した「PUT /api/todos/:id」のテストと基本的に同じ内容となります。スライド記事で実装したテスト以外にも、「これもテストしたほうが良いと思う」というものがあったら、テストを追加していただいても問題ありません^^...

上の3記事は、CRUDのD、つまり「既存データの削除の機能実装」の参考になる記事をまとめたものになります。

データの削除周りの機能を実装する際には、上の3記事を参考にしていただけたらと思います。

質問・答え合わせ受け付けてます

課題に関して質問や答えの確認をしたい方はお気軽にご連絡をいただけたらと思います。

お問い合わせ・TwitterのDM・LINE@で受けつけています。TwitterのDM、LINE@のほうが早く気づけるので早めに返信できるかと思います。

あわせて読みたい
【絶賛受付中】プログラミング・Webの相談お気軽にどうぞ!
【絶賛受付中】プログラミング・Webの相談お気軽にどうぞ!プログラミングやWebで困っていることに対して何でも質問受け付けています。「こんなこと質問しても大丈夫かな」と思っている方のために過去にどんな質問があったのか一例で挙げているので参考にしていただけたらと思います。...
【3つの特典付き】Webエンジニアに必要な基礎スキルを体系的に効率良く身につけたいですか?

LINE登録で無料特典を受け取る

次のような方向けに、学習をサポートするコンテンツを無料プレゼントしています。

  • Webエンジニアになりたいけど何から学習を始めれば良いかわからない
  • 今まで独学で頑張ってきたけど、独学に限界を感じてきた
  • プログラミングは出来るけど、大きめのコードが書けない

「プレゼント詳細が知りたい」「プレゼントを受け取りたい」といった方は、以下のボタンをクリックして詳細ページをご確認ください。

無料特典を受け取る