Skip to main content

Django REST framework views using the pipeline pattern.

Project description

Django REST Framework Pipeline Views

Coverage Status Workflow Status PyPI Licence Last Commit Issues

Python Version Django Version DRF Version

pip install drf-pipeline-views

Documentation: https://mrthearman.github.io/drf-pipeline-views/

Source Code: https://github.com/MrThearMan/drf-pipeline-views/


Inspired by a talk on The Clean Architecture in Python by Brandon Rhodes, drf-pipeline-views aims to simplify writing testable API endpoints with Django REST framework using the Pipeline Design Pattern.

The main idea behind the pipeline pattern is to process data in steps. Input from the previous step is passed to the next, resulting in a collection of "data-in, data-out" -functions. These functions can be easily unit tested, since none of the functions depend on the state of the objects in the other parts of the pipeline. Furthermore, IO can be separated into its own step, making the other parts of the logic simpler and faster to test by not having to mock or do any other special setup around the IO. This also means that the IO block, or in fact any other part of the application, can be replaced as long as the data flowing through the pipeline remains the same.

from pipeline_views import BasePipelineView, GetMixin

from .my_serializers import InputSerializer, OutputSerializer
from .my_validators import validator
from .my_services import io_func, logging_func, integration_func


class SomeView(GetMixin, BasePipelineView):
    pipelines = {
        "GET": [
            InputSerializer,
            validator,
            io_func,
            integration_func,
            logging_func,
            OutputSerializer,
        ],
    }

Have a look at the quickstart section in the documentation on basic usage.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drf-pipeline-views-0.5.2.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

drf_pipeline_views-0.5.2-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file drf-pipeline-views-0.5.2.tar.gz.

File metadata

  • Download URL: drf-pipeline-views-0.5.2.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.9.10 Linux/5.11.0-1028-azure

File hashes

Hashes for drf-pipeline-views-0.5.2.tar.gz
Algorithm Hash digest
SHA256 661ba080c86ca79cefaf3e7e99abcb4efcc043f92706fc0a80d4fdf4ed873f83
MD5 75d4453b7bb3098e60abe00fc4b958ec
BLAKE2b-256 4335137c58f751bd8f83719d6a2b38293646a1c44f4a3b6a39a957f628067b2d

See more details on using hashes here.

File details

Details for the file drf_pipeline_views-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: drf_pipeline_views-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.9.10 Linux/5.11.0-1028-azure

File hashes

Hashes for drf_pipeline_views-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3fa9b78b6ca161d3c1108f91e310cd6d3b29f46bf59312992a1c21baeafa7208
MD5 b2c974129007ef9651683b36acd2e7ed
BLAKE2b-256 8fe89201f169972d7376353fa7b6e368586e9e47c2e9f8defe28eb2d63128a1d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page