The main Usage of a proxy model is to override the main functionality of existing Model. It is a type of model inheritance without creating a new table in Database. It always queries on original model with overridden methods or managers.
Django rest-framework passes extra context data to serializers for the best design of rest applications. we can use "context" parameter in serializers to pass extra context. In viewsets, generic view simply override or overload the method get_serializer_context.
By using routers in django-rest-framework we can avoid writing of url patterns for different views. Routers will save a lot of time for developing the API for larger projects. Routers generates standardized url patterns for better maintenance of url structure. We can expect consistent behaviour from viewsets and routers. We can also avoid repetitive code in views.
Single sign on is a way for users to issue a security token for the first time login, login into multiple applications using one set of credentials i.e security token. Adding sso to an application will make things easier for users because they don't need to remember login credentials for multiple applications. User just needs to enter their login credentials for the first time instead of re-entering their credentials for every application login.
Django Rest Swagger is used to Document your API for eg., Listing all Your project Rest API's in the browser with brief description about the API. In Developing an application, we will write our required API's. To Document these API's we use Django Rest Swagger.