Skip to content

egomobile/node-swagger-proxy

Repository files navigation

npm last build PRs Welcome

@egomobile/swagger-proxy

Extension for @egomobile/http-server, which connects to multiply Swagger / OpenAPI instances and merge their documents to one.

Install

Execute the following command from your project folder, where your package.json file is stored:

npm install --save @egomobile/swagger-proxy

Usage

import createServer from "@egomobile/http-server";
import { setupSwaggerProxy } from "@egomobile/swagger-proxy";

async function main() {
  const app = createServer();

  setupSwaggerProxy(app, {
    baseDocument: {
      info: {
        title: "My merged API",
        version: "1.0.0",
      },
    },

    sources: [
      {
        url: "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.0/link-example.json",
      },
      {
        url: "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.0/callback-example.yaml",
      },
      {
        url: "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.0/petstore.yaml",
      },
    ],
  });

  await app.listen(8080);

  const baseURL = `http://localhost:${app.port}/swagger`;

  console.log("You should now be able to access documentation at:");
  console.log(`- ${baseURL}`);

  console.log();

  console.log("You can download documentation as files from:");
  console.log(`- JSON: ${baseURL}/json`);
  console.log(`- YAML: ${baseURL}/yaml`);
}

main().catch(console.error);

Documentation

The API documentation can be found here.

Releases

No releases published

Packages

No packages published