Skip to content

devalexandre/swagger-moleculer

 
 

Repository files navigation

thinktodo-swagger-moleculer

npm-veriosn npm-dt

This is a swagger plugin for moleculer-web for Moleculer microservices framework, just simple.

Install

npm install thinktodo-swagger-moleculer --save

Usage

Add a service swagger.service.js, here is all options.

const SwaggerService = require("thinktodo-swagger-moleculer");
module.exports = {
	// Service name
	mixins: [SwaggerService],
	name: "swagger",
	settings: {
		middleware: false,
		port: 3002,
		ip: "0.0.0.0",
		expose: true,
		swagger: {
			info: {
				description: "Saigonrealty's APIs Document",
				version: "1.0.0",
				title: "Saigonrealty's APIs Document",
				termsOfService: "",
				contact: {
					name: "thinktodo",
					url: "https://github.com/thinktodo-dev",
					email: "phantomk94@gmail.com"
				},
				license: {
					name: "Apache 2.0",
					url: "https://www.apache.org/licenses/LICENSE-2.0.html"
				}
			},
			host: "127.0.0.1:3002",
			basePath: "/v1",
			tags: [
				{
					name: "Saigonrealty",
					description: "All APIs in Saigonrealty",
					externalDocs: {
						description: "Find out more",
						url: "http://swagger.io"
					}
				}
			],
			schemes: ["http", "https"],
			consumes: ["application/json", "application/xml"],
			produces: ["application/xml", "application/json"]
		},
		schemas: {
			user: {
				type: "object",
				properties: {
					companyCode: {
						type: "string"
					},
					username: {
						type: "string"
					},
					password: {
						type: "string"
					}
				}
			}
		},
		routes: [
			{
				path: "/api/public",
				aliases: {
					// Admin login
					"POST login/admin": {
						swaggerDoc: {
							tags: ["Public"],
							description: "Login to admin page",
							parameters: [
								{
									in: "query",
									name: "username",
									type: "string",
									description: "",
									required: true,
									schema: {}
								},
								{
									in: "query",
									name: "password",
									type: "string",
									description: "",
									required: true,
									schema: {}
								}
							]
						},
						action: "admin.login"
					}
				}
			}
		],
		tags: [
			{
				name: "Public",
				description: "APIs public access"
			}
		],
		servers: [
			{
				url: "http://localhost:3000/",
				description: "Develop server"
			}
		]
	}
};

Not support middleware

Todo

  • Support whitelist
  • Support security
  • Support auto read route

License

The project is available under the MIT license.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 75.9%
  • HTML 24.1%