Skip to main content

Django简易json api接口封装。

Project description

django-apis

Django简易json api接口框架。使用Django Form做接口参数验证。

安装

pip install django-apis

使用

简单的接口开发

  • 所有视图参数按django标准,添加request或其它路径参数。
  • 可以定义Form来完成请求参数的校验。
    • 在检验不通过的情况下,抛出django_apis.exceptions.InputValidationError
    • django_apis.exceptions.InputValidationError会把django的异常信息转化为文本格式。
  • apiviewmethods参数表示允许的HTTP请求类型。
    • 可以是字符串,如:"get"
    • 也可以是字符串数组,如:["get", "post"]
    • 大小写均可。

forms.py

from django.forms import Form
from django.forms.fields import CharField


class EchoInput(Form):
    msg = CharField(max_length=16, required=True)

views.py

from django_apis.views import get_apiview
from django_apis.views import get_json_payload
from django_apis.exceptions import InputValidationError
from .forms import EchoInput

apiview = get_apiview()


@apiview(methods="GET")
def ping(request):
    return "pong"


@apiview(methods="POST")
def echo(request):
    payload = get_json_payload(request)
    form = EchoInput(payload)
    if not form.is_valid():
        raise InputValidationError(form)
    return form.cleaned_data["msg"]


@apiview(methods="GET")
def getRequestInfo(request):
    result = {}
    for key, value in request.META.items():
        if isinstance(value, str):
            result[key] = value
    return result

配置项

  • DJANGO_APIS_ALLOWED_METHODS
  • DJANGO_APIS_APIVIEW
  • DJANGO_APIS_ENABLE_REQUEST_LOG
  • DJANGO_APIS_REQUEST_LOG_NAME

版本记录

v0.1.4

  • 版本首发。

v0.1.5

  • 添加http_bearer_auth_protect方法。

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

django-apis-0.1.5.tar.gz (9.8 kB view hashes)

Uploaded Source

Built Distribution

django_apis-0.1.5-py3-none-any.whl (11.9 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