1
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?

More than 1 year has passed since last update.

インフラエンジニアがRubyでAPI作ってみた

Posted at

自己紹介

はじめまして。
普段はインフラエンジニアとして業務に当たっております。
未経験からエンジニア転職をした身なので、業務の中でこんなにもコードを書かないものかと、転職前とのギャップに驚いています。
あまりにコードを書かなくて成長を実感しなくなったため、業務外でAPIを作って遊んでみることにしました。
どうぞお付き合いください。

今回作るAPI

バンド名とバンドID,曲の名前を返す簡単なものを作成したいと思います。
ただし最初はローカルにサーバーを立てて実行しますが、次回にはDB側をコンテナに、最終的にはAPIもDBもコンテナで動かすという風に、徐々に難しくしていけたらと思います。

手順(1)

①railsプロジェクトを立ち上げる

②modelを作る

③仮のデータを流し込む

④ルーティングを設定する

⑤コントローラを記述する

⑥実際に叩いてみる

シンプルですがこの手順でいこうと思います。
のちに難しくしていきます。
あくまで作って動かしてみることを目的としていますので。

railsプロジェクトの立ち上げ

ターミナルから以下を実行します。

$ rails new band-api --api

スクリーンショット 2022-04-23 0.33.48.png

この画面がでたら成功しています。
やっぱり安心感ありますねー。

②modelを作る。

$ rails g model Band name:string title:string

今回はバンド名と曲名を返すだけのシンプルなものを作成します。

$ rails db:migrate

DBにテーブル/カラムを作成します。

③仮のデータを流し込む

seeds.db
band = [
["sigure", "unravel"] ,
["UNISON", "sugarsong"],
["jihen", "invisible"]
]

bands.each do |name, title|
 Band.create(name: name, title: title)
end

好きな邦楽バンドと有名曲のタイトルを登録しています。
色々とツッコミどころがありますが、ここはテキトーなのでご容赦ください。

⑤ルーティングを設定する

routes.rb
Rails.application.routes.draw do
  resources :bands, only: :index
end

一覧を表示する以外に特にルーティングは設けません。
シンプルイズベスト!

⑥コントローラーを記述する

$ rails g controller Bands
bands_controller.rb
class BandsController < ApplicationController
  def index 
    bands = Band.all 
    render status: 200, json: { bands: bands}
  end
end

Bandというコントローラーを作成します。
最後にlocalhost:3000/bandsにアクセスします。

スクリーンショット 2022-04-23 1.19.45.png

画像のような表示がされたら大成功しています。

1
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
1
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?