Preface Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Conventions used Get in touch Reviews Installing the Required Software and Tools Creating a virtual environment with Python 3.x and PEP 405 Understanding the directory structure for a virtual environment Activating the virtual environment Deactivating the virtual environment Installing Django and Django REST frameworks in an isolated environment Creating an app with Django Understanding Django folders, files, and configurations Installing tools Installing Curl Installing HTTPie Installing the Postman REST client Installing Stoplight Installing iCurlHTTP Test your knowledge Summary Working with Models, Migrations, Serialization, and Deserialization Defining the requirements for our first RESTful Web Service Creating our first model Running our initial migration Understanding migrations Analyzing the database Understanding the table generated by Django Controlling, serialization, and deserialization Working with the Django shell and diving deeply into serialization and deserialization Test your knowledge Summary Creating API Views Creating Django views combined with serializer classes Understanding CRUD operations with Django views and the request methods Routing URLs to Django views and functions Launching Django's development server Making HTTP GET requests that target a collection of instances Making HTTP GET requests that target a single instance Making HTTP POST requests Making HTTP PUT requests Making HTTP DELETE requests Making HTTP GET requests with Postman Making HTTP POST requests with Postman Test your knowledge Summary Using Generalized Behavior from the APIView Class Taking advantage of model serializers Understanding accepted and returned content types Making unsupported HTTP OPTIONS requests with command-line tools Understanding decorators that work as wrappers Using decorators to enable different parsers and renderers Taking advantage of content negotiation classes Making supported HTTP OPTIONS requests with command-line tools Working with different content types Sending HTTP requests with unsupported HTTP verbs Test your knowledge Summary Understanding and Customizing the Browsable API Feature Understanding the possibility of rendering text/HTML content Using a web browser to work with our web service Making HTTP GET requests with the browsable API Making HTTP POST requests with the browsable API Making HTTP PUT requests with the browsable API Making HTTP OPTIONS requests with the browsable API Making HTTP DELETE requests with the browsable API Test your knowledge Summary Working with Advanced Relationships and Serialization Defining the requirements for a complex RESTful Web Service Creating a new app with Django Configuring a new web service Defining many-to-one relationships with models.ForeignKey Installing PostgreSQL Running migrations that generate relationships Analyzing the database Configuring serialization and deserialization with relationships Defining hyperlinks with serializers.HyperlinkedModelSerializer Working with class-based views Taking advantage of generic classes and viewsets Generalizing and mixing behavior Working with routing and endpoints Making requests that interact with resources that have relationships Test your knowledge Summary Using Constraints, Filtering, Searching, Ordering, and Pagination Browsing the API with resources and relationships Defining unique constraints Working with unique constraints Understanding pagination Configuring pagination classes Making requests that paginate results Working with customized pagination classes Making requests that use customized paginated results Configuring filter backend classes Adding filtering, searching, and ordering Working with different types of Django filters Making requests that filter results Composing requests that filter and order results Making requests that perform starts with searches Using the browsable API to test pagination, filtering, searching, and ordering Test your knowledge Summary Securing the API with Authentication and Permissions Understanding authentication and permissions in Django, the Django REST framework, and RESTful Web Services Learning about the authentication classes Including security and permissions-related data to models Working with object-level permissions via customized permission classes Saving information about users that make requests Setting permission policies Creating the superuser for Django Creating a user for Django Making authenticated requests Making authenticated HTTP PATCH requests with Postman Browsing the secured API with the required authentication Working with token-based authentication Generating and using tokens Test your knowledge Summary Applying Throttling Rules and Versioning Management Understanding the importance of throttling rules Learning the purpose of the different throttling classes in the Django REST framework Configuring throttling policies in the Django REST framework Running tests to check that throttling policies work as expected Understanding versioning classes Configuring a versioning scheme Running tests to check that versioning works as expected Test your knowledge Summary Automating Tests Getting ready for unit testing with pytest Writing unit tests for a RESTful Web Service Discovering and running unit tests with pytest Writing new unit tests to improve the tests' code coverage Running unit tests again with pytest Test your knowledge Summary Solutions Chapter 1: Installing the Required Software and Tools Chapter 2: Working with Models, Migrations, Serialization, and Deserialization Chapter 3: Creating API Views Chapter 4: Using Generalized Behavior from the APIView Class Chapter 5: Understanding and Customizing the Browsable API Feature Chapter 6: Working with Advanced Relationships and Serialization Chapter 7: Using Constraints, Filtering, Searching, Ordering, and Pagination Chapter 8: Securing the API with Authentication and Permissions Chapter 9: Applying Throttling Rules and Versioning Management Chapter 10: Automating Tests Other Books You May Enjoy Leave a review - let other readers know what you think