Skip to content
Snippets Groups Projects
Commit a7cc48e0 authored by Alexander Rose's avatar Alexander Rose
Browse files

volume server api docs tweaks

parent 2448ca8a
No related branches found
No related tags found
No related merge requests found
......@@ -16,13 +16,19 @@ export function swaggerUiAssetsHandler(options?: ServeStaticOptions) {
return express.static(getAbsoluteFSPath(), opts)
}
function createHTML(swaggerUrl: string, apiPrefix: string) {
export interface SwaggerUIOptions {
openapiJsonUrl: string
apiPrefix: string
shortcutIconLink: string
}
function createHTML(options: SwaggerUIOptions) {
const htmlTemplate = fs.readFileSync(`${__dirname}/indexTemplate.html`).toString()
return interpolate(htmlTemplate, { swaggerUrl, apiPrefix })
return interpolate(htmlTemplate, options)
}
export function swaggerUiIndexHandler(swaggerUrl: string, apiPrefix: string): express.Handler {
const html = createHTML(swaggerUrl, apiPrefix)
export function swaggerUiIndexHandler(options: SwaggerUIOptions): express.Handler {
const html = createHTML(options)
return (req: express.Request, res: express.Response) => {
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
res.end(html);
......
......@@ -4,6 +4,8 @@
<meta charset="UTF-8">
<title>Swagger UI</title>
<link rel="stylesheet" type="text/css" href="${apiPrefix}/swagger-ui.css" >
${shortcutIconLink}
<style>
html
{
......@@ -42,7 +44,7 @@
}
window.onload = function () {
var ui = SwaggerUIBundle({
url: '${swaggerUrl}',
url: '${openapiJsonUrl}',
validatorUrl: null,
docExpansion: 'list',
dom_id: '#swagger-ui',
......
......@@ -16,7 +16,7 @@ import { ConsoleLogger } from 'mol-util/console-logger'
import { State } from './state'
import { LimitsConfig, ServerConfig } from '../config';
import { interpolate } from 'mol-util/string';
import { getSchema } from './web-schema';
import { getSchema, shortcutIconLink } from './web-schema';
import { swaggerUiIndexHandler, swaggerUiAssetsHandler } from 'servers/common/swagger-ui';
export default function init(app: express.Express) {
......@@ -42,7 +42,11 @@ export default function init(app: express.Express) {
});
app.use(makePath(''), swaggerUiAssetsHandler());
app.get(makePath(''), swaggerUiIndexHandler(makePath('openapi.json'), ServerConfig.apiPrefix));
app.get(makePath(''), swaggerUiIndexHandler({
openapiJsonUrl: makePath('openapi.json'),
apiPrefix: ServerConfig.apiPrefix,
shortcutIconLink
}));
}
function getMapFileFn() {
......
......@@ -257,3 +257,5 @@ export function getSchema() {
}
}
}
export const shortcutIconLink = `<link rel='shortcut icon' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAnUExURQAAAMIrHrspHr0oH7soILonHrwqH7onILsoHrsoH7soH7woILwpIKgVokoAAAAMdFJOUwAQHzNxWmBHS5XO6jdtAmoAAACZSURBVDjLxZNRCsQgDAVNXmwb9f7nXZEaLRgXloXOhwQdjMYYwpOLw55fBT46KhbOKhmRR2zLcFJQj8UR+HxFgArIF5BKJbEncC6NDEdI5SatBRSDJwGAoiFDONrEJXWYhGMIcRJGCrb1TOtDahfUuQXd10jkFYq0ViIrbUpNcVT6redeC1+b9tH2WLR93Sx2VCzkv/7NjfABxjQHksGB7lAAAAAASUVORK5CYII=' />`
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment