一覧ページへ戻る

Expressで自作APIを作成してみた

2026/5/6

Expressで自作APIを作成してみた
〜 自作アプリと連携するための第一歩 〜

開発の経緯

最近、Next.jsでブログ機能を開発している中で、

「フロントエンドだけではなく、自分でAPIも作れるようになりたい」

と思うようになりました。

一般的にWeb開発では、外部APIやCMSを利用することが多いですが、

実際に自分でAPIを設計・実装することで、

  • フロントエンドとバックエンドのつながり
  • HTTP通信
  • JSONの扱い
  • 認証
  • データ設計

など、Webアプリケーションの全体像をより深く理解できると感じました。

そこで今回は、学習も兼ねて、Expressを使ったシンプルなAPIを作成してみました。


そもそもAPIってなに?

API(Application Programming Interface)は、

簡単に言うと、

「ソフトウェア同士がやり取りするための窓口」

のようなものです。

例えば、

  • フロントエンド(Next.js)
  • バックエンド(Express)
  • データベース
  • 外部サービス

などが、お互いに情報をやり取りする際に利用されます。

Wikipediaでは以下のように説明されています。

アプリケーションプログラミングインターフェースとは、広義ではソフトウェアコンポーネント同士が互いに情報をやり取りするのに使用するインターフェースの仕様である

参照:Wikipedia


今回作成したAPI

今回は、レシピデータを扱う簡単なAPIを作成しました。

できること

  • レシピ一覧取得
  • レシピ追加
  • レシピ更新
  • レシピ削除

いわゆる CRUD 操作を実装しています。


使用技術

今回の構成は以下です。

技術

内容

Node.js

JavaScript実行環境

Express

APIサーバー構築

Render

API公開用ホスティング

dotenv

環境変数管理

curl

APIテスト


API設計と実装

Expressを採用した理由

今回はExpressを使って実装しました。

理由としては、

  • シンプルで学習しやすい
  • 情報量が多い
  • API開発の基礎を学びやすい

という点が大きいです。

特にジュニアエンジニアの学習では、

「まずHTTP通信の流れを理解する」

ことが重要だと思っているので、Expressは非常に扱いやすいと感じました。


実際のAPIエンドポイント

例えば、レシピ一覧取得APIは以下のようになっています。

GET /recipes

Render上にデプロイしたテスト用APIはこちらです。

アクセスするとJSON形式でデータが返ってきます。


curlでAPIをテストしてみる

API開発では、実際にHTTPリクエストを送って確認することが重要です。

今回は curl を使ってテストしました。

レシピ一覧取得

curl https://test-api-rygp.onrender.com/recipes

レシピ追加

curl -X POST https://test-api-rygp.onrender.com/recipes \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_TOKEN" \
-d '{
  "title":"カレー",
  "ingredients":["玉ねぎ","にんじん"]
}'

実装して学べたこと

今回のAPI開発で特に学びが大きかったのは以下です。

HTTPメソッドの役割

  • GET → データ取得
  • POST → データ追加
  • PUT → データ更新
  • DELETE → データ削除

なんとなく触っていた頃よりも、
通信の仕組みをかなり理解できるようになりました。


環境変数の重要性

最初は(テスト段階では)トークンをコードに直接書いていましたが、
セキュリティ的に良くないことを学びました。

その後、dotenvを使って環境変数で管理するように変更しました。

TEST_TOKEN=xxxxx

実務でも重要な考え方なので、非常に良い学習になりました。


Renderへのデプロイ

ローカルだけではなく、実際に公開してみることで、

  • 環境変数設定
  • ビルド
  • サーバ起動
  • デプロイ

など、より実践的な経験ができました。

特に、

「ローカルでは動くのに本番で動かない」

という経験は、かなり勉強になりました。


今後やりたいこと

今回は簡単なAPIでしたが、今後は以下にも挑戦したいです。

  • MongoDB/PostgreSQLとの接続
  • JWT認証の実装
  • Next.jsフロントとの連携
  • Docker化
  • Swagger/OpenAPIによるAPI設計
  • バリデーション強化

現在は固定トークンによる簡易認証を実装しているため、
今後はログイン機能を含めた本格的なJWT認証にも挑戦したいと思っています。

最終的には、

「自作API + 自作フロントエンド」

でWebサービスを作れるようになりたいと思っています。


まとめ

今回はExpressを使って、自作APIを作成してみました。

実際に作ってみることで、

  • HTTP通信
  • API設計
  • 認証
  • デプロイ

など、Web開発の理解がかなり深まったと感じています。

プログラミング学習をしている方でも、
一度APIを自作してみると、Webアプリケーション全体の見え方が変わると思います。

これからも少しずつ改善していきたいです。