Description
Django is an amazing framework that allows you to get up and running with professional websites in no time. It does so much for you that it feels like magic: you write a couple of very small clases, put them in the right place with the right "enchantments" and voilá, you got your fully functional website, with a nice admin, user authentication and so on. DRF makes it so that building Web APIs feels exactly the same: a couple of classes here and there and voilá, a nice fully featured REST API working and ready to be deployed. Problems start when your application gets more complicated and a simple CRUD is not enough. When you start customizing behaviors and you need some extra logic to be run in some endpoints or validations get more complex, or many other things that come your way in any project that has become a little more complex than the tutorials. Where do you customize things? Where are things happening in your application if you have apparently no logic running anywhere to be seen? There are methods that can be overriden in the Views or Viewsets, methods on the Serializers, extra classes like Filtersets or permissions that add extra functionality, and many more possibilities you find very fast in your development journey. What is happening there and where is each of these things actually run? In what order? How can I customize it for my needs? The goal of this talk is to give you a brief overview of what is actually happening behind the scenes when processing a request to an endpoint setup with Django Rest Framework and uncover the magic behind your APIs.