automated API documentation for `serviser` based apps
GPL-3.0 License
This serviser
plugin generates documentation (swagger-ui
like frontend) for serviser
Apps.
Here is how it works in few steps:
App
s are fetched from AppManager
App
in AppManager
, corresponding (additional) Doc
http app (which serves the documentation frontend) is created and pushed into internal AppManager
stackDoc
http apps implement the same interface of generic http App
object, the service initialization process continues as it would without any documentation being generated.index.js
file:const config = require('serviser-config');
const Service = require('serviser');
//service initialization stuff...
const service = new Service(config);
//...
//hook-up the plugin
require('serviser-doc');
config.json5
:{
apps: {
appName: {
// provide the doc configuration section for each app you want
// the documentation to be generated for
doc: {
baseUrl: 'http://127.0.0.1:3000',
listen: 3000,
title: 'User API', //optional
stopOnError: true, //optional
//allows us to include hand-crafted API description for each version
readme: { //optional
'v2.0': 'lib/routes/v2.0/README.md'
}
}
}
}
}
desc
& summary
constructor options.content-type(s)
as defined via route.acceptsContentType
Ajv
keyword $desc
which serviser
provides, can be used to describe individual request/response data properties in user defined Route
validation schemas.
route.respondsWith({ //200 - OK response
type: 'object',
properties: {
is_active: {
type: 'boolean',
$desc: 'Whether the user has been online within a period of last 7 days'
}
}
});
//
route.validate({
username: {type: 'string'}
}, 'params');
route.respondsWith
method:
route.respondsWith(RequestError);
route.respondsWith(new RequestError({
apiCode: 'tag.alreadyExists'
message: 'Tag already exists'
}));
route.respondsWith(UnauthorizedError);
Also see serviser
Error management