Ruby on Rails는 웹 애플리케이션을 빠르게 개발할 수 있는 강력한 프레임워크입니다. Rails는 전통적으로 MVC(모델-뷰-컨트롤러) 아키텍처를 따르지만, API 전용 애플리케이션을 설정하는 것도 가능합니다. 이 글에서는 API 전용 Rails 애플리케이션을 설정하는 방법을 단계별로 안내하겠습니다.
먼저, Ruby와 Rails가 설치되어 있어야 합니다. Ruby는 2.5 이상, Rails는 5.0 이상이 필요합니다. 아래의 명령어를 사용하여 Rails를 설치할 수 있습니다.
gem install rails
설치가 완료되면, Rails 버전을 확인하여 제대로 설치되었는지 확인합니다.
rails -v
이제 API 전용 애플리케이션을 생성할 차례입니다. Rails는 API 전용 애플리케이션을 쉽게 생성할 수 있는 옵션을 제공합니다. 아래의 명령어를 사용하여 새로운 애플리케이션을 생성합니다.
rails new my_api --api
위 명령어에서 `my_api`는 애플리케이션의 이름입니다. `--api` 플래그는 Rails가 API 전용 애플리케이션을 생성하도록 지시합니다.
Rails 애플리케이션은 기본적으로 SQLite를 사용하지만, 다른 데이터베이스를 사용할 수도 있습니다. 데이터베이스 설정을 위해 `config/database.yml` 파일을 수정합니다. 예를 들어, PostgreSQL을 사용하고 싶다면 다음과 같이 설정할 수 있습니다.
default: &default adapter: postgresql encoding: unicode pool: 5 username: your_username password: your_password development: <<: *default database: my_api_development test: <<: *default database: my_api_test production: <<: *default database: my_api_production username: my_api password: <%= ENV['MY_API_DATABASE_PASSWORD'] %>
설정을 완료한 후, 데이터베이스를 생성합니다.
rails db:create
이제 API에서 사용할 모델을 생성해보겠습니다. 예를 들어, `Post` 모델을 생성하려면 다음 명령어를 사용합니다.
rails generate model Post title:string content:text
모델이 생성되면, 마이그레이션을 실행하여 데이터베이스에 테이블을 추가합니다.
rails db:migrate
모델이 준비되었으니, 이제 API 요청을 처리할 컨트롤러를 생성합니다. `PostsController`를 생성하려면 다음 명령어를 사용합니다.
rails generate controller Posts
컨트롤러가 생성되면, `app/controllers/posts_controller.rb` 파일을 열어 API 엔드포인트를 정의합니다.
class PostsController < ApplicationController def index @posts = Post.all render json: @posts end def show @post = Post.find(params[:id]) render json: @post end def create @post = Post.new(post_params) if @post.save render json: @post, status: :created else render json: @post.errors, status: :unprocessable_entity end end def update @post = Post.find(params[:id]) if @post.update(post_params) render json: @post else render json: @post.errors, status: :unprocessable_entity end end def destroy @post = Post.find(params[:id]) @post.destroy head :no_content end private def post_params params.require(:post).permit(:title, :content) end end
이제 API 엔드포인트를 사용할 수 있도록 라우팅을 설정해야 합니다. `config/routes.rb` 파일을 열고 다음과 같이 수정합니다.
Rails.application.routes.draw do resources :posts end
이제 `GET`, `POST`, `PUT`, `DELETE` 요청을 통해 `Post` 리소스에 접근할 수 있습니다.
API가 제대로 작동하는지 확인하기 위해 Postman과 같은 API 클라이언트를 사용할 수 있습니다. 아래는 각 요청의 예시입니다.
각 요청에 대한 응답은 JSON 형식으로 반환됩니다.
API를 다른 도메인에서 호출할 수 있도록 하려면 CORS(Cross-Origin Resource Sharing) 설정이 필요합니다. `Gemfile`에 `rack-cors`를 추가합니다.
gem 'rack-cors', require: 'rack/cors'
그런 다음, `bundle install`을 실행하여 gem을 설치합니다.
bundle install
이제 `config/application.rb` 파일을 열고 CORS 설정을 추가합니다.
module MyApi class Application < Rails::Application # ... config.middleware.insert_before 0, Rack::Cors do allow do origins '*' resource '*', headers: :any, methods: [:get, :post, :put, :patch, :delete, :options, :head] end end end end
이제 API 전용 Rails 애플리케이션을 성공적으로 설정했습니다. 이 애플리케이션은 기본적인 CRUD(Create, Read, Update, Delete) 기능을 제공하며, 다른 클라이언트 애플리케이션과 통신할 수 있습니다. Rails의 강력한 기능을 활용하여 더 복잡한 API를 구축할 수도 있습니다. API 개발에 대한 더 많은 정보는 공식 Rails 문서를 참조하세요.
이 글이 API 전용 Rails 애플리케이션을 설정하는 데 도움이 되었기를 바랍니다. 질문이나 추가적인 도움이 필요하다면 언제든지 댓글로 남겨주세요!
© 2024 RailsInsights. All rights reserved.