moleculer-web
Version:
Official API Gateway service for Moleculer framework
96 lines (73 loc) • 3.49 kB
Markdown
[](https://github.com/moleculerjs/moleculer)

[](https://coveralls.io/github/moleculerjs/moleculer-web?branch=master)
[](https://www.codacy.com/app/mereg-norbert/moleculer-web?utm_source=github.com&utm_medium=referral&utm_content=moleculerjs/moleculer-web&utm_campaign=Badge_Grade)
[](https://codeclimate.com/github/moleculerjs/moleculer-web/maintainability)
[](https://david-dm.org/moleculerjs/moleculer-web)
[](https://snyk.io/test/github/moleculerjs/moleculer-web)
[](https://gitter.im/moleculerjs/moleculer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
# Official API Gateway for Moleculer framework [](https://www.npmjs.com/package/moleculer-web)
The `moleculer-web` is the official API gateway service for [Moleculer](https://github.com/moleculerjs/moleculer). Use it to publish your services.
## Features
* support HTTP & HTTPS
* serve static files
* multiple routes
* support global, route, alias middlewares
* support file uploading
* alias names (with named parameters & REST shorthand)
* whitelist
* blacklist
* multiple body parsers (json, urlencoded)
* CORS headers
* ETags
* HTTP2
* Rate limiter
* before & after call hooks
* Buffer & Stream handling
* middleware mode (use as a middleware in ExpressJS Application)
* support authorization
## Install
```
npm install moleculer-web --save
```
## Usage
### Run with default settings
This example uses API Gateway service with default settings.
You can access to all services (including internal `$node.`) via `http://localhost:3000/`
```js
let { ServiceBroker } = require("moleculer");
let ApiService = require("moleculer-web");
let broker = new ServiceBroker({ logger: console });
// Create a service
broker.createService({
name: "test",
actions: {
hello() {
return "Hello API Gateway!"
}
}
});
// Load API Gateway
broker.createService(ApiService);
// Start server
broker.start();
```
**Test URLs:**
- Call `test.hello` action: `http://localhost:3000/test/hello`
- Get health info of node: `http://localhost:3000/~node/health`
- List all actions: `http://localhost:3000/~node/actions`
## Documentation
Please read our [documentation on Moleculer site](http://moleculer.services/docs/moleculer-web.html)
## Test
```
$ npm test
```
In development with watching
```
$ npm run ci
```
## License
Moleculer-web is available under the [MIT license](https://tldrlegal.com/license/mit-license).
## Contact
Copyright (c) 2016-2021 MoleculerJS
[](https://github.com/moleculerjs) [](https://twitter.com/MoleculerJS)