Improve your django-rest openapi schema
Project description
Django Rest OpenAPI Utils
Improve your django-rest openapi schema
If you use or like the project, click Star
and Watch
to generate metrics and i evaluate project continuity.
Install:
pip install djangorest-openapi-utils
Usage:
-
Add to your INSTALLED_APPS, in settings.py:
INSTALLED_APPS = [ ... 'djangorest_openapi_utils', ... ]
-
Add to your main urls.py
urlpatterns = [ ... # third part app's url's path('', include('djangorest_openapi_utils.openapi.urls', namespace='openapi')), path('', include('djangorest_openapi_utils.redoc.urls', namespace='redoc')), # Optinal (to use redoc) path('', include('djangorest_openapi_utils.swagger.urls', namespace='swagger')), # Optinal (to use swagger) path('', include('djangorest_openapi_utils.rapidoc.urls', namespace='rapidoc')) # Optinal (to use rapidoc) ... ]
-
Add to instaled apps settings:
INSTALLED_APPS = [ ... # Third part apps 'djangorest_openapi_utils.openapi', 'djangorest_openapi_utils.redoc', 'djangorest_openapi_utils.swagger', 'djangorest_openapi_utils.rapidoc', ... ]
-
Enable and configure feature in your settings:
OPENAPI_ENABLE = True OPENAPI_CONFIGURATION = { 'TITLE': 'Account MS', 'DESCRIPTION': 'API Documentation', 'VERSION': '1.0.0', 'PUBLIC': True, # show all url or just list read-only api's # https://swagger.io/specification/#tag-object 'OPENAPI_TAGS': [], # https://swagger.io/docs/specification/api-host-and-base-path/ 'SERVERS': [] # is a dict {'url': 'http://...','desc': "Optional"} if empty add current running url to servers # https://swagger.io/docs/specification/authentication/ 'SECURITY_SCHEMES': {'bearerAuth': {'type': 'http', 'scheme': 'bearer', 'bearerFormat': 'JWT'}}, 'OPERATOR_SECURITY': [{'bearerAuth': []}], } REDOC_ENABLE = True REDOC_CONFIGURATION = { 'TEMPLATE_TITLE': 'Your App Name', # title of the page # 'OPENAPI_URL': 'http://...', # To use external OpenAPI url # 'REDOC_VIEW': 'django_openapi_utils.redoc.view.ReDocView', # if you need to pass personalized vars to template } SWAGGER_ENABLE = True SWAGGER_CONFIGURATION = { 'TEMPLATE_TITLE': 'Your App Name', # title of the page # 'OPENAPI_URL': 'http://...', # To use external OpenAPI url # 'REDOC_VIEW': 'django_openapi_utils.redoc.view.ReDocView', # if you need to pass personalized vars to template } RAPIDOC_CONFIGURATION = True RAPIDOC_CONFIGURATION = { 'TEMPLATE_TITLE': 'Your App Name', # title of the page # 'OPENAPI_URL': 'http://...', # To use external OpenAPI url # 'REDOC_VIEW': 'django_openapi_utils.redoc.view.ReDocView', # if you need to pass personalized vars to template }
-
Improve your api specs
from django_openapi_utils.openapi.schemas import OpenApiSchema class YourView(...): ... permission_classes = (IsAuthenticated, ) # use IsAuthenticated or IsAuthenticatedOrReadOnly subclasses to create 401 status code in OpenAPI schema = OpenApiSchema( tags=['Yout Tag'], # Optinal to agroup request in tags ) openapi_id = 'Send Account Password Reset Email' openapi_description = 'Send Account Password Reset Email' openapi_enable_404_status_code = True # to create 404 status code in OpenAPI
-
Multiple id/description for same router (If you have view with multiple routers Ex: RetrieveUpdateDestroyApiView)
from django_openapi_utils.openapi.schemas import OpenApiSchema class YourView(...): ... schema = OpenApiSchema() def openapi_mount_description(self, path, method): return self.openapi_id def get_object(self): return self.openapi_description
Check Result
- Access urls:
/redoc
/rapidoc
/swagger
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
File details
Details for the file djangorest-openapi-utils-0.1.1.tar.gz
.
File metadata
- Download URL: djangorest-openapi-utils-0.1.1.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 234755a875a0e877d7e8e1ab2cd8e95e8ac0e01af2ef1594d83f5f5c3980fab0 |
|
MD5 | 4b4f33098dc917f669e2d3343e9e943c |
|
BLAKE2b-256 | 603f8ef213cdfd9bfdf7d8286f6b0fab5e60c3fdc5186d86cd41a3ecc4db1e37 |