3.2 KiB
3.2 KiB
Ruby API 서버 예제 (Sinatra 사용)
Ruby로 간단한 API 서버를 만들기 위해 Sinatra 프레임워크를 사용할 것이다.
1. 사전 준비
Sinatra 설치
Sinatra는 가볍고 사용하기 쉬운 웹 프레임워크이다. 먼저 Sinatra를 설치하자.
gem install sinatra
또는 Gemfile을 사용한다면 다음을 추가한 후 bundle install을 실행하자.
gem 'sinatra'
gem 'json'
2. API 서버 코드
app.rb 파일을 만들고 아래 코드를 작성하자.
require 'sinatra'
require 'json'
# 서버 기본 설정
set :port, 4567
set :bind, '0.0.0.0'
# 샘플 데이터 (가상의 사용자 목록)
users = [
{ id: 1, name: "Alice", age: 30 },
{ id: 2, name: "Bob", age: 25 },
{ id: 3, name: "Charlie", age: 35 }
]
# 1. 모든 사용자 조회 (GET /users)
get '/users' do
content_type :json
{ users: users }.to_json
end
# 2. 특정 사용자 조회 (GET /users/:id)
get '/users/:id' do
content_type :json
user = users.find { |u| u[:id] == params[:id].to_i }
if user
user.to_json
else
status 404
{ error: "User not found" }.to_json
end
end
# 3. 사용자 추가 (POST /users)
post '/users' do
content_type :json
request_payload = JSON.parse(request.body.read) rescue {}
if request_payload["name"] && request_payload["age"]
new_user = {
id: users.size + 1,
name: request_payload["name"],
age: request_payload["age"]
}
users << new_user
status 201
new_user.to_json
else
status 400
{ error: "Invalid data" }.to_json
end
end
# 4. 사용자 삭제 (DELETE /users/:id)
delete '/users/:id' do
content_type :json
user = users.find { |u| u[:id] == params[:id].to_i }
if user
users.delete(user)
{ message: "User deleted" }.to_json
else
status 404
{ error: "User not found" }.to_json
end
end
3. 실행 방법
터미널에서 다음 명령어를 실행하자.
ruby app.rb
서버가 http://localhost:4567에서 실행된다.
4. API 테스트
모든 사용자 조회
curl http://localhost:4567/users
응답:
{
"users": [
{ "id": 1, "name": "Alice", "age": 30 },
{ "id": 2, "name": "Bob", "age": 25 },
{ "id": 3, "name": "Charlie", "age": 35 }
]
}
특정 사용자 조회
curl http://localhost:4567/users/1
응답:
{ "id": 1, "name": "Alice", "age": 30 }
새로운 사용자 추가
curl -X POST http://localhost:4567/users -H "Content-Type: application/json" -d '{"name": "David", "age": 40}'
응답:
{ "id": 4, "name": "David", "age": 40 }
사용자 삭제
curl -X DELETE http://localhost:4567/users/2
응답:
{ "message": "User deleted" }
5. 결론
이제 Sinatra를 이용하여 간단한 RESTful API 서버를 만들 수 있다.
✅ GET, POST, DELETE 요청 처리
✅ JSON 데이터 반환
✅ 간단한 데이터 저장 및 관리
Sinatra는 가볍고 배우기 쉬운 프레임워크이므로, 빠르게 API 서버를 구축할 때 유용하다!