Skip to main content

Django APIView decorator create Api Doc

Project description

djangoapiviewdoc

根据装饰器生成api文档

版本<=1.1.0

# settings.py
from apiview_doc.decorator import ApiDoc

APIDOC_DECORATOR = ApiDoc()

# views.py
from project_name.settings import APIDOC_DECORATOR
from rest_framework.generics import GenericAPIView


class PersonLoginAPIView(GenericAPIView):
    """
    @author:    JiChao_Song
    @desc:      用户名、密码登录
    @date:      2021/11/29 17:09
    """

    @APIDOC_DECORATOR.start
    @APIDOC_DECORATOR.ApiTag(value = 'user', desc = '用户管理')
    @APIDOC_DECORATOR.ApiOperation(method = 'POST', path = '/user/login', summary = '用户登录')
    @APIDOC_DECORATOR.ApiParams(value = 'username', require = True, type = 'string', desc = '用户名')
    @APIDOC_DECORATOR.ApiParams(value = 'password', require = True, type = 'string', desc = '密码')
    def post(self, request, *args, **kwargs):
        pass


# url.py
from apiview_doc.decorator import api_doc
from views import PersonLoginAPIView


def docs(request):
    context = api_doc()

    return render(request, 'apiview_doc/docs/index.html', context)


urlpatterns = [
    path('login', PersonLoginAPIView.as_view()),
    path('docs', docs),
]

启动项目访问 “/docs”

img.png

版本 >= 1.1.0

# settings.py
from apiview_doc.decorator import ApiDoc
from apiview_doc.openapi import ApiImplicitParam, ApiTag, ApiParameters, ApiOperation, ApiDataType, ApiParamType

# views.py
from rest_framework.generics import GenericAPIView


class PersonLoginAPIView(GenericAPIView):
    """
    @author:    JiChao_Song
    @desc:      用户名、密码登录
    @date:      2021/11/29 17:09
    """

    @ApiTag(name = 'user', description = '用户管理')
    @ApiOperation(method = 'POST', path = 'user/login', summary = '用户登录')
    @ApiParameters(params = [
        ApiImplicitParam(description = '用户名', name = 'username', required = True, paramType = ApiParamType.Body,
                         dataType = ApiDataType.String),
        ApiImplicitParam(description = '密码', name = 'password', required = True, paramType = ApiParamType.Body,
                         dataType = ApiDataType.String),
    ])
    def post(self, request, *args, **kwargs):
        pass


# url.py
from views import PersonLoginAPIView
from apiview_doc.openapi import OpenApi, api_info_list

openapi = OpenApi(
    paths = api_info_list()
)


def get_openapi_docs_url(request):
    context = openapi.__dict__

    return render(request, 'apiview_doc/openapi/index.html', context)

urlpatterns = [
    path('login', PersonLoginAPIView.as_view()),
    path('redocs', get_openapi_docs_url),
]

启动项目访问 “/docs”

img_3.png

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

djangoapiviewdoc-1.1.3.tar.gz (471.4 kB view details)

Uploaded Source

File details

Details for the file djangoapiviewdoc-1.1.3.tar.gz.

File metadata

  • Download URL: djangoapiviewdoc-1.1.3.tar.gz
  • Upload date:
  • Size: 471.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.6.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for djangoapiviewdoc-1.1.3.tar.gz
Algorithm Hash digest
SHA256 3bd8cc057bbc5f46ac7ffaab8b7570e7d56d714a9185bc32e1a7d9b2c730c5a0
MD5 44f816ed763549826a373fcf800bec6b
BLAKE2b-256 00ffbc601b04afa7e1a72c674a3afb9498062598ecc82c66bfa7cf83cc6a407c

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