From 619a84f58302ed6d322e486e8283c0a162f03c81 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 3 Oct 2018 13:56:18 +0100 Subject: [PATCH] Add flags to generate_schema command --- .../management/commands/generate_schema.py | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/rest_framework/management/commands/generate_schema.py b/rest_framework/management/commands/generate_schema.py index 1e3d83fb8..29bf655a8 100644 --- a/rest_framework/management/commands/generate_schema.py +++ b/rest_framework/management/commands/generate_schema.py @@ -9,30 +9,24 @@ class Command(BaseCommand): help = "Generates configured API schema for project." def add_arguments(self, parser): - # TODO - # SchemaGenerator allows passing: - # - # - title - # - url - # - description - # - # Don't particularly want to pass these on the command-line. - # conf file? - # - # Other options to consider: - # - indent - # - ... - pass + parser.add_argument('--title', dest="title", default=None, type=str) + parser.add_argument('--url', dest="url", default=None, type=str) + parser.add_argument('--description', dest="description", default=None, type=str) + parser.add_argument('--format', dest="format", choices=['openapi', 'openapi-json', 'corejson'], default='openapi', type=str) def handle(self, *args, **options): assert coreapi is not None, 'coreapi must be installed.' - generator_class = api_settings.DEFAULT_SCHEMA_GENERATOR_CLASS() + generator_class = api_settings.DEFAULT_SCHEMA_GENERATOR_CLASS( + url=options['url'] + title=options['title'] + description=options['description'] + ) generator = generator_class() schema = generator.get_schema(request=None, public=True) - renderer = self.get_renderer('openapi') + renderer = self.get_renderer(options['format']) output = renderer.render(schema) self.stdout.write(output)