From e30753d98d7f1353a94932cac2e8fc84a7dcf820 Mon Sep 17 00:00:00 2001 From: Nicolas Bonnel Date: Tue, 3 Jul 2018 10:13:53 +0200 Subject: [PATCH] fix: handling docs when no server is set --- src/OpenApi.vue | 8 +- test/app.js | 2 +- test/official-examples/api-with-examples.json | 163 ++++++++++++++++++ 3 files changed, 168 insertions(+), 5 deletions(-) create mode 100644 test/official-examples/api-with-examples.json diff --git a/src/OpenApi.vue b/src/OpenApi.vue index 23d47a4..ac4729c 100644 --- a/src/OpenApi.vue +++ b/src/OpenApi.vue @@ -51,7 +51,7 @@

{{selectedEntry.title || selectedEntry.summary}}

-

{{selectedEntry.method.toUpperCase()}} {{api.servers[0].url + selectedEntry.path}}

+

{{selectedEntry.method.toUpperCase()}} {{ (api.servers && api.servers.length ? api.servers[0].url : '') + selectedEntry.path}}

Parameters

@@ -59,7 +59,7 @@

Responses

- +

Request

@@ -274,9 +274,9 @@ function fetch(request, entry, api) { ) const httpRequest = { method: entry.method, - url: api.servers[0].url + entry.path.replace(/{(\w*)}/g, (m, key) => { + url: api.servers.length && (api.servers[0].url + entry.path.replace(/{(\w*)}/g, (m, key) => { return request.params[key] - }), + })), params, headers } diff --git a/test/app.js b/test/app.js index b163a97..e0450a1 100644 --- a/test/app.js +++ b/test/app.js @@ -4,7 +4,7 @@ import OpenApi from '../src/OpenApi.vue' import 'vue-material/dist/vue-material.css' import VueResource from 'vue-resource' -import jsonApi from './geocoder.json' +import jsonApi from './official-examples/api-with-examples.json' Vue.use(VueResource) Vue.use(VueMaterial) diff --git a/test/official-examples/api-with-examples.json b/test/official-examples/api-with-examples.json new file mode 100644 index 0000000..fd5822f --- /dev/null +++ b/test/official-examples/api-with-examples.json @@ -0,0 +1,163 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Simple API overview", + "version": "v2" + }, + "paths": { + "/": { + "get": { + "operationId": "listVersionsv2", + "summary": "List API versions", + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "examples": { + "foo": { + "value": { + "versions": [{ + "status": "CURRENT", + "updated": "2011-01-21T11:33:21Z", + "id": "v2.0", + "links": [{ + "href": "http://127.0.0.1:8774/v2/", + "rel": "self" + }] + }, { + "status": "EXPERIMENTAL", + "updated": "2013-07-23T11:33:21Z", + "id": "v3.0", + "links": [{ + "href": "http://127.0.0.1:8774/v3/", + "rel": "self" + }] + }] + } + } + } + } + } + }, + "300": { + "description": "300 response", + "content": { + "application/json": { + "examples": { + "foo": { + "value": { + "versions": [{ + "status": "CURRENT", + "updated": "2011-01-21T11:33:21Z", + "id": "v2.0", + "links": [{ + "href": "http://127.0.0.1:8774/v2/", + "rel": "self" + }] + }, { + "status": "EXPERIMENTAL", + "updated": "2013-07-23T11:33:21Z", + "id": "v3.0", + "links": [{ + "href": "http://127.0.0.1:8774/v3/", + "rel": "self" + }] + }] + } + } + } + } + } + } + } + } + }, + "/v2": { + "get": { + "operationId": "getVersionDetailsv2", + "summary": "Show API version details", + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "examples": { + "foo": { + "value": { + "version": { + "status": "CURRENT", + "updated": "2011-01-21T11:33:21Z", + "media-types": [{ + "base": "application/xml", + "type": "application/vnd.openstack.compute+xml;version=2" + }, { + "base": "application/json", + "type": "application/vnd.openstack.compute+json;version=2" + }], + "id": "v2.0", + "links": [{ + "href": "http://127.0.0.1:8774/v2/", + "rel": "self" + }, { + "href": "http://docs.openstack.org/api/openstack-compute/2/os-compute-devguide-2.pdf", + "type": "application/pdf", + "rel": "describedby" + }, { + "href": "http://docs.openstack.org/api/openstack-compute/2/wadl/os-compute-2.wadl", + "type": "application/vnd.sun.wadl+xml", + "rel": "describedby" + }, { + "href": "http://docs.openstack.org/api/openstack-compute/2/wadl/os-compute-2.wadl", + "type": "application/vnd.sun.wadl+xml", + "rel": "describedby" + }] + } + } + } + } + } + } + }, + "203": { + "description": "203 response", + "content": { + "application/json": { + "examples": { + "foo": { + "value": { + "version": { + "status": "CURRENT", + "updated": "2011-01-21T11:33:21Z", + "media-types": [{ + "base": "application/xml", + "type": "application/vnd.openstack.compute+xml;version=2" + }, { + "base": "application/json", + "type": "application/vnd.openstack.compute+json;version=2" + }], + "id": "v2.0", + "links": [{ + "href": "http://23.253.228.211:8774/v2/", + "rel": "self" + }, { + "href": "http://docs.openstack.org/api/openstack-compute/2/os-compute-devguide-2.pdf", + "type": "application/pdf", + "rel": "describedby" + }, { + "href": "http://docs.openstack.org/api/openstack-compute/2/wadl/os-compute-2.wadl", + "type": "application/vnd.sun.wadl+xml", + "rel": "describedby" + }] + } + } + } + } + } + } + } + } + } + } + } +}