🈯

【初心者】エンドポイント(エントリーポイント)とは

に公開

状況

  • こちらもよくミーティングで聞くエンドポイント(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