Services Payments API 

FEATURES

  • JWT Authentication

    The endpoints for creating and updating services, creating and listing payments, and expired payments require user authentication. This authentication is performed by verifying the tokens generated during user login.

  • Pagination

    The API has pagination of 100 results per page for each of the views of the endpoints.

  • Users role

    ANONYMOUS USER can't access the API, NORMAL USER can perform POST requests for payments and GET requests for all views and ADMIN has access to the CRUD of all views.

  • Throttling

    The API has throttling for the payment view with 1000 requests per day, and 2000 requests per day for the other views.

  • Search filter

    The API has search filter in the Payments view for the payment date and expiration date fields.

  • Automatic record

    If the payment date exceeds the expiration date, an automatic record should be created in the Expired_payments table.

TECHNOLOGIES

  • Python (Source)

    Version: 3.10.7

    Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.

  • Django (Source)

    Version: 4.1.7

    Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of web development, so you can focus on writing your app without needing to reinvent the wheel. It's free and open source.

  • Django Rest Framework (Source)

    Version: 3.14.0

    Django REST framework is a powerful and flexible toolkit for building Web APIs. Used and trusted by internationally recognised companies including Mozilla, Red Hat, Heroku, and Eventbrite.

  • Simple JWT (Source)

    Version: 5.2.2

    Simple JWT provides a JSON Web Token authentication backend for the Django REST Framework. It aims to cover the most common use cases of JWTs by offering a conservative set of default features. It also aims to be easily extensible in case a desired feature is not present.

  • Django Cors Headers (Source)

    Version: 4.0.0

    A Django App that adds Cross-Origin Resource Sharing (CORS) headers to responses. This allows in-browser requests to your Django application from other origins.

  • DRF-YASG (Source)

    Version: 1.21.5

    DRF-YASG is a Python package that generates OpenAPI (Swagger) documentation for Django REST framework APIs. It allows developers to automatically generate API documentation from their Django code, making it easy to maintain up-to-date documentation for their APIs. DRF-YASG provides an easy-to-use interface for configuring API documentation, including specifying endpoints, request/response formats, authentication, and more. The resulting documentation can be viewed in a web browser and can be used by other developers to understand how to interact with the API.

  • Gunicorn (Source)

    Version: 20.1.0

    Gunicorn 'Green Unicorn' is a Python WSGI HTTP Server for UNIX. It's a pre-fork worker model. The Gunicorn server is broadly compatible with various web frameworks, simply implemented, light on server resources, and fairly speedy.

  • Whitenoise (Source)

    Version: 6.4.0

    WhiteNoise is a Python package that is used to serve static files for a web application. It can be integrated with a Python web framework (such as Django or Flask) and allows the web application to serve its own static files, rather than relying on a separate web server.

  • Render (Source)

    Version: Free plan

    Render is a unified cloud to build and run all your apps and websites with free TLS certificates, global CDN, private networks and auto deploys from Git