0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

web制作の基本知識2

0
Last updated at Posted at 2026-06-07

Rails APIと認証の基礎を理解しよう

はじめに

Week1では、

  • Webアプリの仕組み
  • HTTP
  • API
  • Git
  • JavaScript
  • React

について学習しました。

今回はバックエンド開発を担当するRails APIについて学びます。

AIサービスであっても、

React
↓
Rails API
↓
PostgreSQL
↓
OpenAI API

という構成になることが多く、Rails APIはシステムの中心となります。


Railsとは

RailsはRubyで開発されたWebアプリケーションフレームワークです。

正式名称は Ruby on Rails です。

Railsが人気な理由は、

  • 開発速度が速い
  • 設定より規約
  • 多くの機能が標準搭載

という特徴があるからです。

スタートアップや受託開発では現在でも広く利用されています。


Rails APIモードとは

通常のRailsは、

  • HTML生成
  • 画面表示
  • API

を担当できます。

しかしReactと組み合わせる場合、

画面表示はReactが担当します。

そのためRailsはAPI専用として利用します。

React
↓
API通信
↓
Rails API

これをRails APIモードと呼びます。


MVCとは

Railsで最も重要な概念です。

MVCは

  • Model
  • View
  • Controller

の略です。


Model

データを扱う部分

class User < ApplicationRecord
end

ユーザー情報を管理します。


Controller

リクエストを受け取る部分

class TasksController < ApplicationController
end

API処理を担当します。


View

画面表示

今回はReactを利用するためほとんど使いません。


Routingとは

RailsはURLと処理を紐付けます。

例えば、

resources :tasks

を書くと、

GET    /tasks
POST   /tasks
PATCH  /tasks/:id
DELETE /tasks/:id

が自動生成されます。

これをルーティングと呼びます。


データベース設計

Railsではデータをテーブルとして管理します。


Userテーブル

id
email
name
password

Taskテーブル

id
title
user_id

主キーとは

テーブル内でレコードを識別する値です。

id = 1
id = 2
id = 3

のように重複しません。


外部キーとは

テーブル同士を関連付けます。

Task
 ↓
user_id
 ↓
User

例えば、

Task
 title: Rails学習
 user_id: 1

なら、

ユーザー1が作成したタスクという意味になります。


ActiveRecordとは

RailsにはORMが標準搭載されています。

ORMとは、

SQLを書かずにDB操作を行う仕組みです。


データ取得

Task.all

実際には、

SELECT * FROM tasks;

が実行されています。


データ作成

Task.create(title: "Rails学習")

データ更新

task.update(title: "React学習")

データ削除

task.destroy

CRUDとは

ほぼすべてのWebアプリで利用される概念です。


Create

作成

POST /tasks

Read

取得

GET /tasks

Update

更新

PATCH /tasks/1

Delete

削除

DELETE /tasks/1

APIを作ってみる

タスク一覧取得API

class TasksController < ApplicationController
  def index
    tasks = Task.all

    render json: tasks
  end
end

Reactから

fetch("/tasks")

が実行されると、

Railsは

[
  {
    "id": 1,
    "title": "Rails学習"
  }
]

を返します。


認証とは

認証は、

「あなたは誰ですか?」

を確認する仕組みです。

例えば、

メールアドレス
パスワード

でログインします。


認可とは

認可は、

「何をしてよいですか?」

を管理します。

例えば、

管理者
一般ユーザー

で操作できる内容が変わります。


deviseとは

Railsで最も有名な認証ライブラリです。

ユーザー登録

ログイン

ログアウト

などを簡単に実装できます。


devise_token_authとは

ReactとRails API構成でよく利用されます。

ログイン成功時にトークンを発行します。

ログイン
↓
Rails
↓
トークン発行
↓
React保存

JWTとは

JWTは認証情報を保持するトークンです。

ログイン後は、

Authorization Header

にトークンを付与して通信します。


ログイン処理の流れ

メールアドレス入力
↓
パスワード入力
↓
POST /auth/sign_in
↓
Rails
↓
DB確認
↓
トークン発行
↓
Reactへ返却

以降はそのトークンを利用して認証を行います。


ReactとRailsの連携

最終的な流れは次のようになります。

React
↓
ログイン
↓
Rails API
↓
PostgreSQL
↓
トークン返却
↓
React保存

その後、

React
↓
GET /tasks
↓
トークン送信
↓
Rails
↓
認証成功
↓
データ返却

となります。


Week2で理解してほしいこと

重要なのはコードを暗記することではありません。

理解すべきなのは、

URLが呼ばれる
↓
Controller
↓
Model
↓
DB
↓
JSON返却

という流れです。

そして認証では、

ログイン
↓
トークン取得
↓
トークン付き通信

が行われていることを理解しましょう。

これが理解できれば、実務レベルのAPI開発の基礎は身についています。

次回のWeek3では、

  • OpenAI API
  • AIチャット
  • セキュリティ
  • デプロイ
  • チーム開発

について学習します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?