Skip to main content

Quickest way to build powerful HTTP APIs in Python

Project description

kwikapi.django

Quickly build API services to expose functionality in Python. kwikapi.django was built by using the functionality of KwikAPI and Django web server.

Installation

$ pip3 install kwikapi[django]

Usage

Create a Django project

(Ref: https://docs.djangoproject.com/en/1.11/intro/tutorial01/)

$ django-admin startproject django_kwikapi

Create an app in Django

$ python3 manage.py startapp polls

Add your app name to settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls',
]

Make sure the contents of files be like this

/django_kwikapi/django_kwikapi/urls.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('polls.urls'))
]

/django_kwikapi/polls/urls.py

from django.conf.urls import url, include

from . import views
from kwikapi.django import RequestHandler

urlpatterns = [
    url(r'api/', RequestHandler(views.api).handle_request),
]

Example of django views

/django_kwikapi/polls/views.py

from django.http import HttpResponse
from kwikapi import API
from logging import Logger

class BaseCalc():
    def add(self, a: int, b: int) -> int:
        return a + b

    def subtract(self, a: int, b: int) -> int:
        return a - b

class StandardCalc():
    def multiply(self, a: int, b: int) -> int:
        return a * b

    def divide(self, a: int, b: int) -> float:
        return a / b

api = API(log=Logger, default_version='v1')
api.register(BaseCalc(), 'v1')
api.register(StandardCalc(), "v2")

Start Django

$ python3 manage.py makemigrations
$ python3 manage.py migrate
$ python3 manage.py runserver 8888

Make API request

$ curl "http://localhost:8888/api/v1/add?a=10&b=10"

To know how to use all features, please refer KwikAPI documentation https://github.com/deep-compute/kwikapi/blob/master/README.md

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

kwikapi-django-0.2.8.tar.gz (3.4 kB view hashes)

Uploaded Source

Built Distribution

kwikapi_django-0.2.8-py3-none-any.whl (4.5 kB view hashes)

Uploaded Python 3

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