Как определить пользовательские коды ошибок для API в рельсах - PullRequest
0 голосов
/ 09 мая 2018

Я хочу определить пользовательские коды ошибок в своем ответе API, как

{ status: 401,message: "Authentication issue",code: 1000}

Я хочу определить этот код 1000 в моем приложении с некоторой документацией объяснения. Как я могу это сделать?

1 Ответ

0 голосов
/ 09 мая 2018

Сначала вам нужно определить свое пользовательское исключение:

class API::Unauthorized < StandardError
  attr_reader :code

  def initialize(code)
    super
    @code = code
  end
end

Затем в вашем APIController используйте rescue_from , поэтому добавьте следующее:

rescue_from StandardError, :with => :exception_handler

def exception_handler(exception)
  if exception.is_a? API::Unauthorized
    render json: { status: 401, message: "Authentication issue", code: exception.code }, status: unauthorized
  end
end

Теперь вы можете генерировать разные коды исключений в зависимости от вашей реализации:

raise API::Unauthorized.new(1000)
...