From de0b43756307dacdac39cc2d1a95b51c1c4500fd Mon Sep 17 00:00:00 2001 From: Karen Bradshaw Date: Fri, 22 Jan 2016 09:36:21 -0500 Subject: [PATCH] Updates to swagger_to_rst template -Updated template to use new fields and file structure. See swagger files in conversion_files_valid. Change-Id: Ibfbbff48b0165ed993ec705308c20c806809b990 --- fairy_slipper/cmd/swagger_to_rst.py | 40 ++++++++++++++++------------- migrate.sh | 2 +- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/fairy_slipper/cmd/swagger_to_rst.py b/fairy_slipper/cmd/swagger_to_rst.py index 832ca49..a05b14f 100644 --- a/fairy_slipper/cmd/swagger_to_rst.py +++ b/fairy_slipper/cmd/swagger_to_rst.py @@ -30,21 +30,21 @@ from jinja2 import Environment log = logging.getLogger(__name__) TMPL_API = """ -{%- for path, requests in swagger['paths'].items() -%} -{%- for request in requests -%} +{%- for path, methods in swagger['paths'].items() -%} +{%- for method_name, request in methods.items() -%} -.. http:{{request.method}}:: {{path}} - :title: {{request.title}} - :synopsis: {{request.summary}} +.. http:{{method_name}}:: {{path}} + :title: {{request['x-title']}} + :synopsis: {{request['summary']}} {%- if request.description != '' %} {% for line in request.description.split('\n') %} {{line}} {%- endfor %} {%- endif %} -{% if request['examples']['application/json'] %} +{% if request['x-examples']['application/json'] %} :requestexample: {{version}}/examples/{{request['operationId']}}_req.json {%- endif -%} -{% if request['examples']['text/plain'] %} +{% if request['x-examples']['text/plain'] %} :requestexample: {{version}}/examples/{{request['operationId']}}_req.txt {%- endif -%} {% for status_code, response in request.responses.items() %} @@ -80,7 +80,7 @@ TMPL_API = """ {{ parameter|format_param('reqheader') }} {%- endif %} {%- endfor -%} -{% for status_code, response in request.responses.items() %} +{% for status_code, response in request['responses'].items() %} :statuscode {{status_code}}: {{response.description}} {%- endfor %} @@ -94,7 +94,7 @@ TMPL_TAG = """ .. swagger:tag:: {{tag.name}} :synopsis: {{tag.description}} -{% for line in tag.summary.split('\n') %} +{% for line in tag['x-summary'].split('\n') %} {{line}} {%- endfor %} @@ -136,8 +136,12 @@ def main1(filename, output_dir): def write_index(swagger, output_dir): info = swagger['info'] + service = info['x-service'] + + # Web UI uses 'service' field for indexing + del info['x-service'] + info['service'] = service version = info['version'] - service = info['service'] output_file = 'index.json' filepath = path.join(output_dir, output_file) log.info("Writing APIs %s", filepath) @@ -160,7 +164,7 @@ def write_rst(swagger, output_dir): def write_apis(swagger, output_dir): info = swagger['info'] version = info['version'] - service = info['service'] + service = info['x-service'] service_path = path.join(output_dir, service) output_file = '%s.rst' % version if not path.exists(service_path): @@ -178,7 +182,7 @@ def write_apis(swagger, output_dir): def write_tags(swagger, output_dir): info = swagger['info'] version = info['version'] - service = info['service'] + service = info['x-service'] service_path = path.join(output_dir, service) if not path.exists(service_path): os.makedirs(service_path) @@ -196,7 +200,7 @@ def write_tags(swagger, output_dir): def write_jsonschema(swagger, output_dir): info = swagger['info'] version = info['version'] - service = info['service'] + service = info['x-service'] service_path = path.join(output_dir, service) full_path = path.join(service_path, version) if not path.exists(service_path): @@ -215,7 +219,7 @@ def write_jsonschema(swagger, output_dir): def write_examples(swagger, output_dir): info = swagger['info'] version = info['version'] - service = info['service'] + service = info['x-service'] service_path = path.join(output_dir, service) versioned_path = path.join(service_path, version) full_path = path.join(versioned_path, 'examples') @@ -226,10 +230,10 @@ def write_examples(swagger, output_dir): if not path.exists(full_path): os.makedirs(full_path) - for operations in swagger['paths'].values(): - for operation in operations: - if 'examples' in operation: - for mime, example in operation['examples'].items(): + for paths in swagger['paths'].values(): + for operation in paths.values(): + if 'x-examples' in operation: + for mime, example in operation['x-examples'].items(): filename = '%s' % '_'.join( [operation['operationId'], 'req']) if mime == 'application/json': diff --git a/migrate.sh b/migrate.sh index 8d64c55..4c6f2e5 100755 --- a/migrate.sh +++ b/migrate.sh @@ -137,7 +137,7 @@ function migrate_docbkx { fi if [[ -n $swagger2rst || -n $generate_all ]]; then - ${wrapper} find conversion_files -name \*-swagger.json -type f -exec fairy-slipper-swagger-to-rst -o api_doc $verbose_docs {} \; + ${wrapper} find conversion_files_valid -name \*-swagger.json -type f -exec fairy-slipper-swagger-to-rst -o api_doc $verbose_docs {} \; fi }