Django Rest Framework library to interconnect external APIs
Project description
Django Spook
Library to interconnect multiple external HTTP APIs as Http Services
Installation
pip install spook
Usage
Declare a serializer class for your input validation
from rest_framework import serializers
class MySerializer(serializers.ModelSerializer):
name = serializers.CharField()
age = serializers.IntegerField()
class Meta:
fields = ('name', 'age', )
Declare an InputValidator
from spook.validators import InputValidator
class MyResourceInputValidator(InputValidator):
serializer_class = MySerializer
Declare an API Resource class.
from spook.resources import APIResource
class MyResource(APIResource):
api_url = 'https://my.external/api'
validator = MyResourceInputValidator
Now you can instance MyResource class and use the methods
resource = MyResource()
# List resources
resource.list()
# Retrieve a single resource
resource.retrieve(pk=1)
# Create resource
resource.create({'name': 'Pablo', 'age': 28})
# Update resource
resource.update(pk=1, data={'name': 'Pablo Moreno'})
# Delete resource
resource.delete(pk=1)
There are also some views available
from spook.views import (
APIResourceRetrieveView, APIResourceListView, APIResourceCreateView, APIResourcePutView,
APIResourceRetrieveUpdateView, APIResourceRetrieveUpdateDestroyView, APIResourceListCreateView,
)
class ListCreateProductResourceView(APIResourceListCreateView):
resource = ProductResource
def get_token(self, request):
return '' # Wee need to override get_token()
class RetrieveUpdateDestroyProductResourceView(APIResourceRetrieveUpdateDestroyView):
resource = ProductResource
def get_token(self, request):
return ''
Development
We recommend to use a virtual environment
Install poetry
pip install poetry
Install dependencies
poetry install
Run tests
poetry run pytest --cov=spook
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
spook-3.2.3.tar.gz
(8.6 kB
view hashes)
Built Distribution
spook-3.2.3-py3-none-any.whl
(11.0 kB
view hashes)