http://localhost:8080/myapi/?offset=2&limit=10
struct MyObject {
let id: Int
let name: String
}
var lActions:[APIAction] = []
let lMyApi = APIAction(
method: .get, route: "/myapi",
summary: "Some summary",
description: "some description",
parameters: [
APIParameter(name: "offset", parameterLocation: .query, description: "offset description", required: false),
APIParameter(name: "limit", parameterLocation: .query, description: "limit description", required: false)
],
responses: [
APIResponse(code: "200", description: "OK", array: MyObject.self, contentType: "json")
],
authorization: true)
lActions.append(lMyApi)
let lOpenAPI = OpenAPIBuilder(
title: "MyAPI",
version: "1.0.0",
description: "MyAPI description"
)
lOpenAPI.add(lAPIController)
.add([
APIObject(object: MyObject(id: 100, name: "name of the object"))
])
{
"paths": {
"/myapi": {
"get": {
"parameters": [
{
"deprecated": false,
"allowEmptyValue": false,
"in": "query",
"name": "offset",
"description": "offset description",
"required": false
},
{
"deprecated": false,
"allowEmptyValue": false,
"in": "query",
"name": "limit",
"description": "limit description",
"required": false
}
],
"tags": [
"MyApi"
],
"deprecated": false,
"responses": {
"200": {
"content": {
"json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MyObject"
}
}
}
},
"description": "OK"
}
},
"description": "some description",
"summary": "Some summary"
}
}
},
"servers": [
],
"openapi": "3.0.1",
"info": {
"title": "MyAPI",
"version": "1.0.0",
"description": "MyAPI description"
},
"tags": [
{
"name": "MyApi",
"description": "Test APIs"
}
],
"components": {
"schemas": {
"MyObject": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "name of the object"
},
"id": {
"type": "int",
"example": "100"
}
},
"required": [
"id",
"name"
]
}
},
"securitySchemes": {
}
}
}
FROM node
RUN npm update npm &&\
npm install http-server replace
RUN mkdir -p /tmp/swagger
ADD https://github.com/swagger-api/swagger-ui/archive/master.tar.gz /tmp/swagger/swaggerui.tar.gz
RUN tar --strip-components 1 -C /tmp/swagger -xzf /tmp/swagger/swaggerui.tar.gz
RUN mkdir -p /swaggerui/dist/swagger-ui &&\
mv /tmp/swagger/dist/* /swaggerui/dist/swagger-ui &&\
rm -rf /tmp/swagger
ENV API_URL http://petstore.swagger.io/v2/swagger.json
RUN echo "'use strict';\
var path = require('path');\
var createServer = require('http-server').createServer;\
var dist = path.join('swaggerui', 'dist');\
var replace = require('replace');\
replace({regex: 'http.*swagger.json', replacement : process.env.API_URL, paths: ['/swaggerui/dist/swagger-ui/index.html'], recursive:false, silent:true,});\
var swaggerUI = createServer({ root: dist, cors: true });\
swaggerUI.listen(8888);" > /swaggerui/index.js
EXPOSE 8888
docker run --detach --rm --name swaggerui -p 8888:8888 -e "API_URL=http://localhost:8080/swagger.json" swaggerui:latest
The parameters are not defined correctly but I do not see what needs to be done to correct this.