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
deck
By Dimitri Snijder
deck
- 38