UNPKG

erm2openapi

Version:

Create OpenAPI documentation from Mongoose schemas for express-restify-mongoose servers.

61 lines (47 loc) 1.52 kB
# erm2openapi Create OpenAPI documentation from Mongoose models for express-restify-mongoose servers. ## Overview Library for creating [OpenAPI](https://swagger.io/specification/) from [Mongoose models](https://mongoosejs.com/docs/models.html) for servers using [express-restify-mongoose](https://florianholzapfel.github.io/express-restify-mongoose/) (ERM). The resulting OpenAPI document will include all path operations generated by ERM as well as tags and schemas. ## Installation ```sh npm install erm2openapi ``` ## Usage ```js const erm2openapi = require('erm2openapi'); const fs = require('fs'); const mongoose = require('mongoose'); // Create a schema const blogSchema = new mongoose.Schema({ title: String, author: String, body: String, comments: [{ body: String, date: Date }], date: { type: Date, default: Date.now }, hidden: Boolean, meta: { votes: Number, favs: Number, }, }); // Create a model const blog = mongoose.model('blog', blogSchema); // Create object keyed by model name/identifier const models = { blog: { model: blog }, }; // Create base OpenAPI object with information about your API/team const base = { info: { title: 'Some API', version: '1.0.0' }, servers: [ { url: 'https://some.host.com', description: 'Production server', }, ], }; // Create OpenAPI object const openapi = erm2openapi(base, models); // Do something with output, like writing to a file fs.writeFileSync('api-docs.json', JSON.stringify(openapi, null, 2)); ```