Package Exports
- openapi-connect
- openapi-connect/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (openapi-connect) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Base for microservices around OpenAPI/Swagger
- Use Swagger 2.0 (OpenAPI in feature) specification as source of trues about all aspects of service like security/validation/routing/etc (thanks swagger-tools)
- Support OpenID/OAuth
- Support request logging
- Base implementation for service health checking
- Base graceful shutdown implementation
Almost all middleware like (OAuth/CORS/request logging/etc) can be overridden through options.
Steps to use
- According to API first approach write OpenAPI/Swagger specification for your service and save it to something like
./api/public.yaml
npm i openapi-connect
to install- Write
intex.ts
orindex.js
as
import server, { IOptions } from 'openapi-connect'
const options: IOptions = {
basePath: env.BASE_PATH,
port: env.PORT,
logger: getLogger(), // instance of logger implemented contract from loggerism package
router: {
controllers: './bin/controllers' // path to folder where we request handlers can be found or object like { [operationName: string]: RequestHandler }
},
// in case OpenID/OAuth required
oauth: {
enable: true,
url: env.OAUTH_SERVICE_URL,
audience: env.OAUTH_AUDIENCE // optional
},
swaggerUI: { enable: env.ENABLE_SWAGGER_UI } // optional
}
server('./api/public.yaml', options)
TODO
- Use semantic-release
- Add monitoring/instrumentation with OpenTracing compatibility like
@risingstack/opentracing-auto
orappmetrics
- Move to GitHub and use Travis CI for better opportunity to force open source.