레일즈의 Apipie 질문드립니다

조회수 1533회

레일즈를 이용한 REST 서버 구축중에 API Document를 제공하기 위해서

apipie라는 것을 알게 되어서 사용중인데

이게 파라메터 항목중에 require: true를 가진 api를 호출할때 해당 인자가 없으면

알아서 에러를 던져주더군요.

그런데 이 에러가

{"errors":{"#\u003cApipie::ParamDescription:0x00000003541408\u003e":"required"}}

이렇게 뜨는데 저 객체를 그대로 찍는 부분을 어떻게 커스텀 할 수 없는지 궁금합니다.

익셉션을 캐치하는 코드는 다음과 같습니다.

  rescue_from Apipie::ParamError do |e|
    error = e.error rescue "required"
    json = {
      e.param => error
    }
    render status: 400, json: {
      errors: json
    }
  end
  • (•́ ✖ •̀)
    알 수 없는 사용자
  • json = { e.param => error } 이 라인에서 e.param 이 부분이 해당 객체 부분인데, 어떻게 커스텀 하고자 하시는건가요? 알 수 없는 사용자 2016.5.8 17:49
  • inspect로 찍어보니까 내용이 많던데 그중에서 메세지만 이쁘게 뽑고싶은데 어떻게 해야할지 잘 모르겠네요 ;; 알 수 없는 사용자 2016.5.9 10:17

1 답변

  • 정확히 어떻게 커스터마이징 하신다는건지 이해가 잘안되지만..

    json = {
        error: "에러입니다" 
    }
    

    혹은

    render status: 400, json: {
            error:  "#{e.param}은 필수로 있어야 합니다."
        }
    
    

    이런식으로 커스터마이징 하면 되는것 아닌지요..;

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)