From 94b13c01218864fac8f9a8e9ce3544194c589719 Mon Sep 17 00:00:00 2001 From: Daniel Wagner-Hall Date: Mon, 7 Sep 2015 17:14:36 +0100 Subject: [PATCH] Show all responses, not just the successful one This still filters out responses lacking either a description or an example --- .../matrix_templates/templates/http-api.tmpl | 17 +++++++++++++++-- templating/matrix_templates/units.py | 16 +++++++++++----- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/templating/matrix_templates/templates/http-api.tmpl b/templating/matrix_templates/templates/http-api.tmpl index 5e80f168..1384daab 100644 --- a/templating/matrix_templates/templates/http-api.tmpl +++ b/templating/matrix_templates/templates/http-api.tmpl @@ -46,6 +46,19 @@ Example request:: {{endpoint.example.req | indent_block(2)}} -Example response:: +{% if endpoint.example.responses|length > 0 -%} +Response{{"s" if endpoint.example.responses|length > 1 else "" }}: - {{endpoint.example.res | indent_block(2)}} \ No newline at end of file +{% endif -%} + +{% for res in endpoint.example.responses -%} + +**Status code {{res["code"]}}:** + +{{res["description"]}} + +Example:: + + {{res["example"] | indent_block(2)}} + +{% endfor %} diff --git a/templating/matrix_templates/units.py b/templating/matrix_templates/units.py index d607160f..42ce3f22 100644 --- a/templating/matrix_templates/units.py +++ b/templating/matrix_templates/units.py @@ -177,11 +177,17 @@ class MatrixUnits(Units): endpoint["req_param_by_loc"][p["loc"]] = [] endpoint["req_param_by_loc"][p["loc"]].append(p) - # add example response if it has one - res = single_api["responses"][200] # get the 200 OK response - endpoint["example"]["res"] = res.get("examples", {}).get( - "application/json", "" - ) + endpoint["example"]["responses"] = [] # Ordered list of maps + for code, res in single_api["responses"].items(): + description = res.get("description", "") + example = res.get("examples", {}).get("application/json", "") + if description and example: + endpoint["example"]["responses"].append({ + "code": code, + "description": description, + "example": example, + }) + # form example request if it has one. It "has one" if all params # have either "x-example" or a "schema" with an "example". params_missing_examples = [