はじめに
naritomoと申します。
本職はインフラエンジニアを行っています。
これまでアプリ領域の技術習得のため、各種言語の開発環境Dockerの構築を行ってきましたが、Railsでのアプリ第一号を作ってみましたので、公開したいと思います。
いろいろアドバイスいただけると嬉しいです。
開発概要
以下の仕様とします。
- API稼働フレームワークはRuby on Railsを使用する。
- API入力は、以下のものを入力する。
- URLにクエリでJSONキーを指定する。(?key=key1)
- POSTボディーにJSONデータを入れる。
- API出力は以下のものとする。
- クエリで指定したJSONキーに対応した値をプレーンテキストで出力する。
事前準備
以下の記事を参考にRuby on Rails開発環境を構築してること。
Railsサイトを参照できること。
プロジェクトフォルダ(src)に移動する。
API構築方法
APIソース作成
コントローラファイルを作成する。
vi app/controllers/api/v1/data_controller.rb
ファイル内容
module Api
module V1
class DataController < ApplicationController
skip_before_action :verify_authenticity_token
def extract
json_data = JSON.parse(request.body.read)
query_key = params[:key]
if json_data.key?(query_key)
render plain: json_data[query_key]
else
render json: { error: "Key '#{query_key}' not found in JSON data" }, status: :bad_request
end
end
end
end
end
ルートファイルを開く。
vi config/routes.rb
編集内容
以下の内容に編集する。
Rails.application.routes.draw do
namespace :api do
namespace :v1 do
post 'extract', to: 'data#extract'
end
end
end
動作確認
新しいターミナルを立ち上げ、以下のコマンドを入力する。
curl -X POST -H "Content-Type: application/json" -d "{"name": "John", "age": "30"}" "http://localhost:3000/api/v1/extract?key=age"
30という値が返ってくること。
おわりに
Railsでのアプリ開発第一歩として、JSONパーサーAPIを構築してみました。
この作成にはchatgptも利用して構築しています。
この記事がRailsでのAPIを作ってみたい方の助けになればと思います。