0.0.7 • Published 5 years ago

thinktodo-swagger-moleculer v0.0.7

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

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.