Rails API errors

Huidige situatie

​​      api :POST, '/implants.json', 'Add implants to the users account'
      param_group :implant
      def create
        implant = current_user.implants.new implant_params
        unless implant.save
          return render json: implant.errors, status: :unprocessable_entity
        end
      end

Nadelen

  • Veel code die herhaald wordt
  • Kan ingewikkeld worden
  • Uitgebreidere logica, randvoorwaarden en errors

Nieuwe situatie

  • Meeste endpoints hebben error handling
  • Minder 'boilerplate code'
  • Kleiner risico dat validatie vergeten wordt
  • Meer flexibiliteit

Stap één

  • 'rescue_from' methode
  • Meningen zijn verdeeld 
  • 'Anti-pattern'
  • Geen spannende code

rescue_from

  • Exception handling
  • Op één plek de validaties afvangen
  • Bijvoorbeeld als validaties falen

 

Demo 1

Stapje verder

  • In app errors direct weergeven
  • Type validaties?
  • Error handling in apps? 
  • Meer specifieke responses

exception.record

  • Retourneert het problematische record
  • Loopen door errors
  • Custom JSON retourneren
  • Berg if'jes

errors.details

  • Methode in Rails 5
  • Error code name i.p.v. message
  • Gem (link)

Demo 2

Made with Slides.com