From 2ad0b3a14b408fc89c4b36406369a54903932d21 Mon Sep 17 00:00:00 2001 From: Maxime Alves LIRMM Date: Wed, 23 Sep 2020 15:23:36 +0200 Subject: [PATCH] =?UTF-8?q?[doc][route]=C2=A0/schema=20-=20implementation?= =?UTF-8?q?=20of=20doc=20generation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- halfapi/app.py | 9 ++++++++- halfapi/cli/domain.py | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/halfapi/app.py b/halfapi/app.py index 4d8a535..c457504 100644 --- a/halfapi/app.py +++ b/halfapi/app.py @@ -18,6 +18,11 @@ from halfapi.lib.jwt_middleware import JWTAuthenticationBackend from halfapi.lib.responses import * from halfapi.lib.routes import gen_starlette_routes +from starlette.schemas import SchemaGenerator +schemas = SchemaGenerator( + {"openapi": "3.0.0", "info": {"title": "HalfAPI", "version": "1.0"}} +) + routes = [ Route('/', lambda request, *args, **kwargs: PlainTextResponse('It Works!')), @@ -26,7 +31,9 @@ routes = [ if type(request.user) != UnauthenticatedUser else JSONResponse({'user':False})), Route('/payload', lambda request, *args, **kwargs: - JSONResponse({'payload':str(request.payload)})) + JSONResponse({'payload':str(request.payload)})), + Route('/schema', lambda request, *args, **kwargs: + schemas.OpenAPIResponse(request=request)) ] if not PRODUCTION else [] for route in gen_starlette_routes(): diff --git a/halfapi/cli/domain.py b/halfapi/cli/domain.py index ec727fe..ed2b5f7 100644 --- a/halfapi/cli/domain.py +++ b/halfapi/cli/domain.py @@ -4,6 +4,8 @@ import sys import logging import click import importlib + + from .cli import cli from halfapi.conf import DOMAINS, BASE_DIR from halfapi.db import (