1.1.0 • Published 3 years ago

erm2openapi v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

erm2openapi

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

Overview

Library for creating OpenAPI from Mongoose models for servers using express-restify-mongoose (ERM). The resulting OpenAPI document will include all path operations generated by ERM as well as tags and schemas.

Installation

npm install erm2openapi

Usage

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));