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

```bash
$ pip3 install kwikapi[django]
```

## Usage

### Create a Django project

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

```bash
$ django-admin startproject django_kwikapi
```

### Create an app in Django

```bash
$ python3 manage.py startapp polls
```

### Add your app name to settings.py

```python
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

```python
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

```python
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

```python
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(Logger, default_version='v1')
api.register(BaseCalc(), 'v1')
api.register(StandardCalc(), "v2")
```

### Start Django

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

### Make API request

```bash
$ 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.5.tar.gz (3.4 kB view hashes)

Uploaded Source

Built Distribution

kwikapi_django-0.2.5-py3-none-any.whl (3.6 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