Rails API

2991 단어 Railsapi

소개



Rails의 API 모드를 활용하여 API를 만드는 절차를 요약했습니다.

절차



1. API 모드로 Rails 앱 만들기
2. 모델 컨트롤러 작성
3. 네임스페이스를 의식한 라우팅 설정
4. 컨트롤러 설정
5. 브라우저에서 확인

API 모드로 Rails 앱 만들기


$ rails new api-task --api

일반 rails new 명령의 끝에 --api를 붙이면 API 모드로 앱을 만들 수 있습니다.
(API에 필요하지 않은 부분을 기본적으로 작성하지 않습니다.)

모델 컨트롤러 작성



일반 Rails 앱처럼 모델과 컨트롤러를 만듭니다.
rails g model category name:string
rails g model idea category_id:bigint body:text
$ rails db:create
$ rake db:migrate

네임스페이스를 인식하는 라우팅 설정



처음부터 다음과 같이 버전으로 네임스페이스를 만들어 두면 향후 API 버전 관리가 용이해집니다.

config/routes.rb
Rails.application.routes.draw do
  namespace 'api' do
    namespace 'v1' do
      resources :posts
    end
  end
end

컨트롤러 설정



루트에서 설정한 네임스페이스에 따라 디렉터리 구성은 다음과 같습니다.
---- controllers

      --- api

        -- v1

         - ideas_controller.rb
         - categories_controller.rb


class IdeasController < ApplicationController
  def index
    @ideas = Idea.all

     render json: @ideas
  end

  def create
     @idea = Idea.new(idea_params)

    if @idea.save
      render json: @idea, status: :created, location: @idea
    else
      render json: @idea.errors, status: :unprocessable_entity
    end
  end


  private

  def idea_params
    params.require(:idea).permit(:catagory_id,:body)
  end
end

class CategoriesController < ApplicationController
  def index
  end

  def create
    @category = Category.new(idea_params)

    if @category.save
      render json: @category, status: :created, location: @category
    else
      render json: @category.errors, status: :unprocessable_entity
    end
  end

  private

  def category_params
    params.require(:category).permit(:name)
  end
end

브라우저에서 확인



일부 Idea를 만들고 브라우저에서 확인
Get( http://localhost:3000/api/v1/ideas )



위와 같이 표시되면 OK! !

좋은 웹페이지 즐겨찾기