Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/moleculerjs/moleculer-web
:earth_africa: Official API Gateway service for Moleculer framework
https://github.com/moleculerjs/moleculer-web
api-gateway gateway hacktoberfest http-server microservices moleculer
Last synced: 2 months ago
JSON representation
:earth_africa: Official API Gateway service for Moleculer framework
- Host: GitHub
- URL: https://github.com/moleculerjs/moleculer-web
- Owner: moleculerjs
- License: mit
- Created: 2017-05-05T19:14:19.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-03-31T15:18:00.000Z (10 months ago)
- Last Synced: 2024-04-14T07:51:46.337Z (9 months ago)
- Topics: api-gateway, gateway, hacktoberfest, http-server, microservices, moleculer
- Language: JavaScript
- Homepage: http://moleculer.services/docs/moleculer-web.html
- Size: 3.05 MB
- Stars: 292
- Watchers: 16
- Forks: 120
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-moleculer - moleculer-web - Official API Gateway service. (Services / Gateway)
README
[![Moleculer logo](http://moleculer.services/images/banner.png)](https://github.com/moleculerjs/moleculer)
![Node CI](https://github.com/moleculerjs/moleculer-web/workflows/Node%20CI/badge.svg)
[![Coverage Status](https://coveralls.io/repos/github/moleculerjs/moleculer-web/badge.svg?branch=master)](https://coveralls.io/github/moleculerjs/moleculer-web?branch=master)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/5d0c3b3d03bd4e8683a19630a32ad22b)](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)
[![Maintainability](https://api.codeclimate.com/v1/badges/6d81a3b83b448bbb1f99/maintainability)](https://codeclimate.com/github/moleculerjs/moleculer-web/maintainability)
[![David](https://img.shields.io/david/moleculerjs/moleculer-web.svg)](https://david-dm.org/moleculerjs/moleculer-web)
[![Known Vulnerabilities](https://snyk.io/test/github/moleculerjs/moleculer-web/badge.svg)](https://snyk.io/test/github/moleculerjs/moleculer-web)
[![Join the chat at https://gitter.im/moleculerjs/moleculer](https://badges.gitter.im/moleculerjs/moleculer.svg)](https://gitter.im/moleculerjs/moleculer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)# Official API Gateway for Moleculer framework [![NPM version](https://img.shields.io/npm/v/moleculer-web.svg)](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
* 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[![@moleculerjs](https://img.shields.io/badge/github-moleculerjs-green.svg)](https://github.com/moleculerjs) [![@MoleculerJS](https://img.shields.io/badge/twitter-MoleculerJS-blue.svg)](https://twitter.com/MoleculerJS)