{"id":13600792,"url":"https://github.com/scttcper/koa2-swagger-ui","last_synced_at":"2025-10-06T02:30:56.284Z","repository":{"id":37269902,"uuid":"68752730","full_name":"scttcper/koa2-swagger-ui","owner":"scttcper","description":"Swagger UI as Koa v2 middleware","archived":false,"fork":true,"pushed_at":"2024-11-18T02:48:00.000Z","size":4669,"stargazers_count":105,"open_issues_count":8,"forks_count":32,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-19T02:54:04.977Z","etag":null,"topics":["koa","koa2","swagger","swagger-ui"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"johnhof/swagger-injector","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scttcper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-20T20:57:10.000Z","updated_at":"2025-01-17T09:06:08.000Z","dependencies_parsed_at":"2023-02-10T16:25:19.748Z","dependency_job_id":null,"html_url":"https://github.com/scttcper/koa2-swagger-ui","commit_stats":null,"previous_names":[],"tags_count":83,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttcper%2Fkoa2-swagger-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttcper%2Fkoa2-swagger-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttcper%2Fkoa2-swagger-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scttcper%2Fkoa2-swagger-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scttcper","download_url":"https://codeload.github.com/scttcper/koa2-swagger-ui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234597649,"owners_count":18857983,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["koa","koa2","swagger","swagger-ui"],"created_at":"2024-08-01T18:00:48.682Z","updated_at":"2025-10-06T02:30:56.278Z","avatar_url":"https://github.com/scttcper.png","language":"TypeScript","funding_links":[],"categories":["Node.js, koa"],"sub_categories":["Utilites"],"readme":"# koa2-swagger-ui [![NPM version][npm-image]][npm-url]\n\n[npm-image]: https://img.shields.io/npm/v/koa2-swagger-ui.svg\n[npm-url]: https://npmjs.org/package/koa2-swagger-ui\n[travis-img]: https://api.travis-ci.org/scttcper/koa2-swagger-ui.svg?branch=master\n[travis-url]: https://travis-ci.org/scttcper/koa2-swagger-ui\n[coverage-img]: https://codecov.io/gh/scttcper/koa2-swagger-ui/branch/master/graph/badge.svg\n[coverage-url]: https://codecov.io/gh/scttcper/koa2-swagger-ui\n\n\u003e Host swagger ui at a given directory from your koa v2 app\n\nInspired by:\n\n- [swagger-injector](https://github.com/johnhof/swagger-injector) for serving on a specific route\n- [hapi-swaggered-ui](https://github.com/z0mt3c/hapi-swaggered-ui) for serving files from node_modules using a handlebars driven index.html\n\n## install\n\n```\nnpm install koa2-swagger-ui --save\n```\n\n## config\n\nfor more swaggerOptions see [swagger-ui](https://github.com/swagger-api/swagger-ui#swaggerui)\ndefaults:\n\n```javascript\ntitle: 'swagger', // page title\noauthOptions: {}, // passed to initOAuth\nswaggerOptions: { // passed to SwaggerUi()\n  dom_id: 'swagger-ui-container',\n  url: 'http://petstore.swagger.io/v2/swagger.json', // link to swagger.json\n  supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],\n  docExpansion: 'none',\n  jsonEditor: false,\n  defaultModelRendering: 'schema',\n  showRequestHeaders: false,\n  swaggerVersion: 'x.x.x' // read from package.json,\n  validatorUrl: null, // disable swagger-ui validator\n},\nroutePrefix: '/docs', // route where the view is returned\nspecPrefix: '/docs/spec', // route where the spec is returned\nexposeSpec: false, // expose spec file\nhideTopbar: false, // hide swagger top bar\nfavicon: '/favicon.png', // default favicon\ncustomCSS: `h1 { color: red }`, // Add Custom CSS on the html\n```\n\n## example\n\n```javascript\nimport Koa from 'koa';\nimport { koaSwagger } from 'koa2-swagger-ui';\n\nconst app = new Koa();\n\napp.use(\n  koaSwagger({\n    routePrefix: '/swagger', // host at /swagger instead of default /docs\n    swaggerOptions: {\n      url: 'http://petstore.swagger.io/v2/swagger.json', // example path to json\n    },\n  }),\n);\n\napp.listen(3000);\n```\n\n## example with koa-router and yaml source\n\ndepends on yamljs to turn your Yaml into a JS object\n\n```\nnpm install --save yamljs\n```\n\n```javascript\nconst Koa = require('koa');\nconst Router = require('koa-router');\nconst yamljs = require('yamljs');\nconst koaSwagger = require('koa2-swagger-ui');\n\nconst router = new Router({ prefix: '/' });\n\nconst app = new Koa();\nconst router = new Router();\n\n// .load loads file from root.\nconst spec = yamljs.load('./openapi.yaml');\n\n// example 1 using router.use()\nrouter.use(koaSwagger({ swaggerOptions: { spec } }));\n\n// example 2 using more explicit .get()\nrouter.get('/docs', koaSwagger({ routePrefix: false, swaggerOptions: { spec } }));\n\napp.use(router.routes());\napp.listen(3000);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscttcper%2Fkoa2-swagger-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscttcper%2Fkoa2-swagger-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscttcper%2Fkoa2-swagger-ui/lists"}