【初心者】エンドポイント(エントリーポイント)とは
状況
- こちらもよくミーティングで聞くエンドポイント(Endpoint)
- 例に従って抽象的な概念でよくわかっていなかったので調べてみました
- エントリーポイント(Entry Point)との違いも比較しています
内容(基礎編)
1. エンドポイント(Endpoint)とは?
日常の例:レストランの注文窓口
エンドポイント =「レストランの注文窓口」の概念が近い
- レストランでは、お客さん(ユーザー)が料理を注文するために「注文窓口(エンドポイント)」を利用する
- 注文窓口では、「メニューを渡す」「注文を受け付ける」「料理を提供する」などのやり取りが行われる
同じように、WebアプリケーションやAPI(アプリケーション間の通信)では、外部からデータを送ったり受け取ったりするための「アクセスできる場所」がある。それが エンドポイント(Endpoint)
例えば、病院のマッチングサイトを作っているとすると、
-
/doctors
→ 医師の一覧を取得するエンドポイント -
/clinics
→ クリニックの一覧を取得するエンドポイント -
/appointments
→ 予約を作成するエンドポイント
これらは、ユーザーがアクセスすることで情報を取得したり送信したりできる「窓口」のようなもの
特定のAPIの接続先(URL)を指し、「個別の医師を取得するためのエンドポイントはposts /doctors/:idです」 のように使う
2. エントリーポイント(Entry Point)とは?
日常の例:レストランの入口
エントリーポイントは「システムに入る最初の入り口」
レストランにたとえると、「お客さんがレストランに入る入口」のこと
- レストランには「入口のドア」があり、そこを通って店内に入る
- 店内に入ったら、注文窓口(エンドポイント)に行って料理を注文できる
同じように、プログラムやWebアプリケーションでも「最初に実行される場所」がある。これが エントリーポイント(Entry Point)
APIシステムの場合、エントリーポイントは app/controllers/application_controller.rb
から各エンドポイントにリクエストが振り分けられることが多い
3. エンドポイントとエントリーポイントの違い
項目 | 例(レストラン) | 例(Webアプリ) |
---|---|---|
エントリーポイント | レストランの入口(お店に入る最初の場所) |
bin/rails server (アプリの起動地点) |
エンドポイント | 注文窓口(メニューを見て料理を注文) |
/doctors や /clinics などのAPIのアクセス先 |
簡単な言い方をすると:
- エントリーポイント → 「プログラムを動かすための入り口」
- エンドポイント → 「データをやり取りするための窓口」
4. Railsアプリでの実例
エントリーポイント
Railsアプリを起動するときのエントリーポイントは bin/rails server
このコマンドを実行すると、Railsアプリが動き始める
エンドポイント
例えば、config/routes.rbで resources :articles
と定義すると
以下のエンドポイントが生成される:
- GET /articles → 記事の一覧取得
- POST /articles → 新しい記事を作成
- GET /articles/:id → 特定の記事の詳細を取得
- PATCH /articles/:id → 記事の更新
- DELETE /articles/:id → 記事の削除
- GET /articles/:id/preview → 記事のプレビュー表示(カスタムエンドポイント)
まとめ
-
エントリーポイント → 「最初に実行される入り口」(Railsなら
bin/rails server
) -
エンドポイント → 「データをやり取りするための窓口」(APIの
/doctors
など)
応用編
エントリーポイント・エンドポイントの実際の使い方(開発例)
では、Rails アプリの開発で エントリーポイント(Entry Point) と エンドポイント(Endpoint) をどのように活用するのか、 簡単な例 を具体的にみていく
基本的な開発フロー
📌 エントリーポイントの利用
Rails サーバーの起動
開発を始める際には、まず Rails アプリを起動
bin/rails server
- これは エントリーポイント を実行するコマンド
-
bin/rails
がエントリーポイントになっており、内部でrails server
を実行する
実行すると以下のように出力される
=> Booting Puma
=> Rails 7.0.5 application starting in development
=> Run `bin/rails server --help` for more startup options
-
config/routes.rb
に定義された エンドポイント にリクエストを受け付ける状態になる
📌 エンドポイントの利用
例: API で記事を取得するエンドポイント
次に、エンドポイントを作成し、アクセスしてみる
config/routes.rb
にエンドポイントを定義:
Rails.application.routes.draw do
resources :articles, only: [:index, :show]
end
- これにより、以下のエンドポイントが自動で生成される:
-
GET /articles
(記事一覧を取得) -
GET /articles/:id
(特定の記事を取得)
-
コントローラーを作成:
bin/rails g controller Articles
app/controllers/articles_controller.rb
class ArticlesController < ApplicationController
def index
articles = Article.all
render json: articles
end
def show
article = Article.find(params[:id])
render json: article
end
end
- これで
GET /articles
にアクセスすると、記事一覧が取得できる -
GET /articles/1
にアクセスすると、IDが1の記事を取得できる
実際に API を呼び出して確認
curl http://localhost:3000/articles
レスポンス
[
{ "id": 1, "title": "エンドポイントについて", "content": "エンドポイントの解説記事" },
{ "id": 2, "title": "Rails 入門", "content": "Rails の基本を学ぶ" }
]
この GET /articles
が、エンドポイントとなる
まとめ
概念 | 例 | 実際に使う場面 |
---|---|---|
エントリーポイント | bin/rails server |
Rails アプリを起動する |
エンドポイント | GET /articles |
記事一覧を取得 |
所見
- ようやくイメージが湧いてきた
- railsではエンドポイントは勝手に作られていたためよく理解できていなかったが、これからAPI連携等の開発を進めていく上で必須の概念だなと思った
Discussion