diff --git a/requirements.txt b/requirements.txt index 9620e183..f6419b7d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -61,4 +61,6 @@ https://github.com/OpenDroneMap/WebODM/releases/download/v1.9.7/GDAL-3.3.3-cp39- Shapely==1.7.0 ; sys_platform == "win32" eventlet==0.32.0 ; sys_platform == "win32" pyopenssl==19.1.0 ; sys_platform == "win32" -numpy==1.21.1 \ No newline at end of file +numpy==1.21.1 +drf-yasg==1.20.0 + diff --git a/webodm/settings.py b/webodm/settings.py index bf4f7e27..273d20e7 100644 --- a/webodm/settings.py +++ b/webodm/settings.py @@ -105,6 +105,7 @@ INSTALLED_APPS = [ 'guardian', 'rest_framework', 'rest_framework_nested', + 'drf_yasg', 'webpack_loader', 'corsheaders', 'colorfield', diff --git a/webodm/urls.py b/webodm/urls.py index dbcf82f8..d92938ff 100644 --- a/webodm/urls.py +++ b/webodm/urls.py @@ -16,16 +16,36 @@ Including another URLconf import os from django.conf.urls import include, url +from django.urls import re_path from django.contrib import admin from . import settings from django.views.static import serve +from rest_framework import permissions +from drf_yasg.views import get_schema_view +from drf_yasg import openapi + admin.site.site_header = 'WebODM Administration' +schema_view = get_schema_view( + openapi.Info( + title="WebODM API", + default_version='v1.0.0', + description="WebODM API", + #terms_of_service="", + #contact=openapi.Contact(email=""), + ), + public=True, + permission_classes=[permissions.AllowAny], +) + urlpatterns = [ url(r'^', include('app.urls')), url(r'^', include('django.contrib.auth.urls')), url(r'^admin/', admin.site.urls), + re_path(r'^swagger(?P\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'), + re_path(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'), + re_path(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'), ] if settings.DEBUG or settings.FORCE_MEDIA_STATICFILES: @@ -40,6 +60,6 @@ if settings.DEBUG or settings.FORCE_MEDIA_STATICFILES: ] - #from django.contrib.staticfiles.urls import staticfiles_urlpatterns #urlpatterns += staticfiles_urlpatterns() +