Newer
Older
2024-Tsubasa / system / ruby / test_sinatra / app.rb
@tsubasa tsubasa on 27 Jul 2024 1 KB add: sinatra file
require 'sinatra'
require 'json'

items = {}

# Create
post '/items' do # POSTリクエストが/itemsに送信されたときに実行
  id = params[:id] # idパラメータからデータを取得
  content = params[:content] # contentパラメータからデータを取得
  items[id] = content # hashに追加
  status 201 # HTTPステータスコードを設定
  "Item created with ID: #{id}"
end

# Read
get '/items/:id' do # GETリクエストが/items/:idに送信されたときに実行される
  id = params[:id] # URLの動的セグメントからIDを取得
  item = items[id] # hashから対応するデータを取得
  if item # データがある時
    item.to_json # jsonに変換
  else
    status 404
    "Item not found"
  end
end

# Update
put '/items/:id' do # PUTリクエストが/items/:idに送信されたときに実行
  id = params[:id]
  content = params[:content]
  if items[id]
    items[id] = content # items[id]のコンテンツを更新
    "Item with ID: #{id} updated"
  else
    status 404
    "Item not found"
  end
end

# Delete
delete '/items/:id' do # DELETEリクエストが//items/:idに送信されたときに実行
  id = params[:id]
  if items.delete(id) # IDに対応するアイテムを削除し、削除された場合
    "Item with ID: #{id} deleted"
  else
    status 404
    "Item not found"
  end
end