Symfony RESTful API: Errors (Course 2)
Beat those 404's & 500's! Learn how to handle errors consistently across your Symfony RESTful API projects.
About this course
In course 1, we added our basic endpoints with some nice tests (yes!).
Now, we turn to a huge part of APIs: handling and returning consistent errors. Seriously, this is more important than you might think - which is why we're covering this in episode 2.
So, let's handle errors, and let's do it gracefully:
- Handling Form Validation errors and response
- Disabling csrf_protection
- Introducing the api-problem JSON format
- Exception Listener!
- Consistent errors everywhere: 404's, 500's, oh my!
- Handling "extra fields" in your form
Next courses in the APIs: REST in Symfony 2 & 3 section of the APIs Track!
15 Comments
Hey Hugo do Carmo
We don't use Guzzle for this specific course, but thanks for the info anyways!
Have a nice day
Hi MolloKhan, although it's not declared as a dependency, the Guzzle client is used to test the programmer controller, as you can see in ApiTestCase, ResponseAsserter and ProgrammerControllerTest.
Since it's not declared as a dependency, the developer have the freedom to choose the most recent version, which is incompatible with the current code in this case.
Cheers.
Ohh, you are totally right Hugo, sorry for misleading you. If you want to use Guzzle 6 for this course I believe it won't be that hard to tweak the code so it works properly
Have a nice day
Hey Rosemary!
No this course specifically, unfortunately. For Symfony 5, we'll likely be focusing more on API Platform - https://symfonycasts.com/sc... - because it's just SO useful for handling SO many things for you. However, I also want people to be able to learn the fundamentals and create API endpoints without API Platform. Have you tried API Platform? If yes (or no), what are the things that you are especially looking for in this tutorial that you would like to see in Symfony 5? Feedback always motivates what we do :).
Cheers!
Returns the following:
{
"type": "validation_error",
"title": "There was a validation error",
"errors": [
"The CSRF token is invalid. Please try to resubmit the form.",
"Please enter a clever nickname"
]
}
without the 'nickname' subelement.
Yo Danny! With any luck, we'll start releasing things next week - and we'll finish by the end of June :).
Cheers!
We definitely are - we'll have more this week and yet more next week :)
Just a reminder, if you pretend to use Guzzle 6, it now throws exception for 400 and 500 level of errors (see https://stackoverflow.com/a/30957410/2214160 )