diff --git a/requirements.txt b/requirements.txt index 6acf863..22bacd4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,26 @@ asgiref==3.5.2 +certifi==2022.6.15 +charset-normalizer==2.1.0 +coreapi==2.3.3 +coreschema==0.0.4 Django==4.0.6 +django-cors-headers==3.13.0 django-filter==22.1 djangorestframework==3.13.1 +drf-yasg==1.20.0 drfpasswordless==1.5.8 +idna==3.3 +inflection==0.5.1 +itypes==1.2.0 +Jinja2==3.1.2 Markdown==3.3.7 +MarkupSafe==2.1.1 +packaging==21.3 +pyparsing==3.0.9 pytz==2022.1 +requests==2.28.1 +ruamel.yaml==0.17.21 +ruamel.yaml.clib==0.2.6 sqlparse==0.4.2 +uritemplate==4.1.1 +urllib3==1.26.9 diff --git a/workx_backend/settings/base.py b/workx_backend/settings/base.py index 05127f5..d0b252d 100644 --- a/workx_backend/settings/base.py +++ b/workx_backend/settings/base.py @@ -19,9 +19,11 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'corsheaders', 'rest_framework', 'rest_framework.authtoken', - 'drfpasswordless' + 'drfpasswordless', + 'drf_yasg' ] PASSWORDLESS_AUTH = { @@ -32,6 +34,7 @@ PASSWORDLESS_AUTH = { MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', + 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', @@ -39,6 +42,8 @@ MIDDLEWARE = [ 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] +CORS_ALLOWED_ORIGINS = ['*'] + ROOT_URLCONF = 'workx_backend.urls' REST_FRAMEWORK = { diff --git a/workx_backend/urls.py b/workx_backend/urls.py index 88168d3..7ff4961 100644 --- a/workx_backend/urls.py +++ b/workx_backend/urls.py @@ -2,13 +2,30 @@ from django.contrib import admin from django.urls import path, include from rest_framework import routers from workx_backend.views import UserViewSet +from rest_framework import permissions +from drf_yasg.views import get_schema_view +from drf_yasg import openapi + +schema_view = get_schema_view( + openapi.Info( + title="Snippets API", + default_version='v1', + description="Test description", + terms_of_service="https://www.google.com/policies/terms/", + contact=openapi.Contact(email="contact@snippets.local"), + license=openapi.License(name="BSD License"), + ), + public=True, + permission_classes=[permissions.AllowAny], +) router = routers.DefaultRouter() router.register(r'users', UserViewSet) urlpatterns = [ + path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'), + path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'), path('admin/', admin.site.urls), path('api/', include(router.urls)), path('', include('drfpasswordless.urls')), ] -