활성 모델 Serializer란 무엇입니까?



소개



Rails API 데이터 구조를 생성할 때 프로세스는 다양한 요청을 처리하고 요청된 JSON을 반환하도록 경로 및 컨트롤러를 설정하는 것으로 구성됩니다. 이 JSON을 반환할 때 특별히 원하는 항목만 표시하도록 사용자 지정할 수 있습니다. 우리가 원하는 정보를 표시하는 다양한 방법이 있지만 Rails의 Active Model Serializer는 JSON 데이터를 사용자 지정하는 간단한 방법을 제공하는 동시에 "구성에 대한 규칙"기술을 따릅니다.

활성 모델 직렬 변환기 사용



Active Model Serializer를 사용하려면 먼저 Gemfile에 gem을 설치하고 터미널에서 'bundle install' 명령을 실행하여 활성화해야 합니다.

# Gemfile
...
gem 'active_model_serializers'


다음으로 터미널에서 'rails g serializer' 명령을 실행하여 ActiveModel::Serializer를 생성해야 합니다. 다음은 특정 모델인 레스토랑에 대해 생성된 직렬 변환기의 모습입니다.

# app/serializers/restaurant_serializer.rb
class RestaurantSerializer < ActiveModel::Serializer
  attributes :id
end


현재 직렬 변환기는 데이터에 특정 레스토랑의 ID만 표시하도록 허용하고 있습니다. 사용자에게 표시되는 속성을 사용자 지정하려면 '이름, 시작 연도, 요리 및 인기 있는 요리를 속성에 추가하여 serializer 파일을 수정할 수 있습니다.

class RestaurantSerializer < ActiveModel::Serializer
  attributes :id, :name, :year_started, :cuisine, :popular_dish
end


레스토랑 컨트롤러

# app/controllers/restaurants_controller.rb
def show
  restaurant = Restaurant.find(params[:id])
  render json: restaurant
end


이제 localhost:3000/restaurants 브라우저로 이동하면 위에 나열된 속성을 포함하여 나열된 모든 레스토랑을 볼 수 있습니다.

결론



방금 사용자에게 특정 정보를 표시하는 직렬 변환기를 만드는 방법을 배웠습니다. 이 지식으로 직접 직렬 변환기를 만들어 볼 수 있습니다!

좋은 웹페이지 즐겨찾기