Ruby의 GraphQL 필드 이름

GraphQL API를 구축하는 동안 유형의 필드 이름이 객체의 메소드 이름과 일치하지 않는 경우가 많습니다.

class Types::UserType < Types::BaseObject
  field :is_active, Boolean, null: false
  field :is_banned, Boolean, null: false

  def is_active
    object.active?
  end

  def is_banned
    object.banned?
  end
end

이로 인해 메서드 호출에 대한 프록시 역할을 하는 개체 유형에 사용자 지정 메서드를 작성해야 했습니다.
graphql-ruby gem에는 기본적으로 method 속성이라는 이 모든 작업을 수행하는 documented way이 있습니다.

그리고 method: 속성을 사용하여 이전 예제를 다음과 같이 다시 작성할 수 있습니다.

class Types::UserType < Types::BaseObject
  field :is_active, Boolean, null: false, method: :active?
  field :is_banned, Boolean, null: false, method: :banned?
end

이제 일반적인 Ruby 규칙을 사용하여 메서드를 계속 작성할 수 있지만 API 소비자에게 적합한 이름을 사용하여 스키마에 노출할 수 있습니다.

좋은 웹페이지 즐겨찾기