1. API and it's types

SOAP, RPC, Websocket, REST

1. API

API stands for Application Programming Interface. It’s a software interface that allows two or more applications to interact with each other without any user intervention.

It offers products or services to communicate with other products and services without having to know how they’re implemented.

Protocols that can be used in APIs are TCP, SMTP, HTTP

[Read More]

2. Rest Framework

Django Rest Framework

REST API

REpresentational State Transfer API (Application Programming Interface)

Its an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each other.

  • It provides a set of principles/rules for building web services that used HTTP as a communication protocol.
  • An API that follows REST standard are called as RESTful API
  • GET, POST, PATCH, PUT and DELETE
[Read More]

3. DRF Serialization

Serializer and Model Serializer

Serialization

Serializers allow complex data such as querysets and model instances to be converted to native Python datatypes that can then be easily rendered into JSON, XML or other content types.

Serializers also provide deserialization, allowing parsed data to be converted back into complex types, after first validating the incoming data.

[Read More]

4. DRF Function based View

Requests and Responses, Function based View

Request Object

REST framework introduces a Request object that extends the regular HttpRequest, and provides more flexible request parsing.

The core functionality of the Request object is the request.data attribute, which is similar to request.POST, but more useful for working with Web APIs.

  • request.POST
    • Only handles form data.
    • Only works for 'POST' method.
  • request.data
    • Handles arbitrary data.
    • Works for ‘POST’, ‘PUT’ and ‘PATCH’ methods.
[Read More]

6. DRF ViewSets & Routers

ViewSet, ModelViewSet, ReadOnlyModelViewSet, GenericViewSet

6.1 ViewSets

ViewSet classes are almost the same thing as View classes, except that they provide operations such as retrieve, or update, and not method handlers such as get or put.

In other word ViewSet class is simply a type of class-based View, that does not provide any method handlers such as .get() or .post(), and instead provides operations/actions such as .list() and .create().

[Read More]

9. TokenAuthentication

Django-rest-auth, Dj-rest-auth

9. TokenAuthentication

The token authentication works by exchanging username and password for a token that will be used in all subsequent requests so to identify the user on the server side.

Token authentication is suitable for client-server applications, where the token is safely stored. You should never expose your token, as it would be (sort of) equivalent of a handing out your username and password.

[Read More]