{"id":13526679,"url":"https://github.com/moleculerjs/moleculer-web","last_synced_at":"2025-04-01T07:33:29.470Z","repository":{"id":37673553,"uuid":"90408889","full_name":"moleculerjs/moleculer-web","owner":"moleculerjs","description":":earth_africa: Official API Gateway service for Moleculer framework","archived":false,"fork":false,"pushed_at":"2024-03-31T15:18:00.000Z","size":3198,"stargazers_count":292,"open_issues_count":31,"forks_count":120,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-04-14T07:51:46.337Z","etag":null,"topics":["api-gateway","gateway","hacktoberfest","http-server","microservices","moleculer"],"latest_commit_sha":null,"homepage":"http://moleculer.services/docs/moleculer-web.html","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moleculerjs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-05-05T19:14:19.000Z","updated_at":"2024-04-08T07:10:13.000Z","dependencies_parsed_at":"2023-09-27T01:58:51.660Z","dependency_job_id":"79008966-d7fe-4f13-87fd-0681a4429e6c","html_url":"https://github.com/moleculerjs/moleculer-web","commit_stats":{"total_commits":600,"total_committers":52,"mean_commits":"11.538461538461538","dds":"0.21333333333333337","last_synced_commit":"c6ec80056a64ea15c57d6e2b946ce978d673ae92"},"previous_names":[],"tags_count":66,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moleculerjs%2Fmoleculer-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moleculerjs%2Fmoleculer-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moleculerjs%2Fmoleculer-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moleculerjs%2Fmoleculer-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moleculerjs","download_url":"https://codeload.github.com/moleculerjs/moleculer-web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246600931,"owners_count":20803519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","gateway","hacktoberfest","http-server","microservices","moleculer"],"created_at":"2024-08-01T06:01:33.065Z","updated_at":"2025-04-01T07:33:24.460Z","avatar_url":"https://github.com/moleculerjs.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","Services"],"sub_categories":["Gateway"],"readme":"[![Moleculer logo](http://moleculer.services/images/banner.png)](https://github.com/moleculerjs/moleculer)\n\n![Node CI](https://github.com/moleculerjs/moleculer-web/workflows/Node%20CI/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/moleculerjs/moleculer-web/badge.svg?branch=master)](https://coveralls.io/github/moleculerjs/moleculer-web?branch=master)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/5d0c3b3d03bd4e8683a19630a32ad22b)](https://www.codacy.com/app/mereg-norbert/moleculer-web?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=moleculerjs/moleculer-web\u0026amp;utm_campaign=Badge_Grade)\n[![Maintainability](https://api.codeclimate.com/v1/badges/6d81a3b83b448bbb1f99/maintainability)](https://codeclimate.com/github/moleculerjs/moleculer-web/maintainability)\n[![David](https://img.shields.io/david/moleculerjs/moleculer-web.svg)](https://david-dm.org/moleculerjs/moleculer-web)\n[![Known Vulnerabilities](https://snyk.io/test/github/moleculerjs/moleculer-web/badge.svg)](https://snyk.io/test/github/moleculerjs/moleculer-web)\n[![Join the chat at https://gitter.im/moleculerjs/moleculer](https://badges.gitter.im/moleculerjs/moleculer.svg)](https://gitter.im/moleculerjs/moleculer?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n# Official API Gateway for Moleculer framework  [![NPM version](https://img.shields.io/npm/v/moleculer-web.svg)](https://www.npmjs.com/package/moleculer-web)\n\n\nThe `moleculer-web` is the official API gateway service for [Moleculer](https://github.com/moleculerjs/moleculer). Use it to publish your services.\n\n## Features\n* support HTTP \u0026 HTTPS\n* serve static files\n* multiple routes\n* support global, route, alias middlewares\n* support file uploading\n* alias names (with named parameters \u0026 REST shorthand)\n* whitelist\n* multiple body parsers (json, urlencoded)\n* CORS headers\n* ETags\n* HTTP2\n* Rate limiter\n* before \u0026 after call hooks\n* Buffer \u0026 Stream handling\n* middleware mode (use as a middleware in ExpressJS Application)\n* support authorization\n\n## Install\n```\nnpm install moleculer-web --save\n```\n\n## Usage\n\n### Run with default settings\nThis example uses API Gateway service with default settings.\nYou can access to all services (including internal `$node.`) via `http://localhost:3000/`\n\n```js\nlet { ServiceBroker } = require(\"moleculer\");\nlet ApiService = require(\"moleculer-web\");\n\nlet broker = new ServiceBroker({ logger: console });\n\n// Create a service\nbroker.createService({\n    name: \"test\",\n    actions: {\n        hello() {\n            return \"Hello API Gateway!\"\n        }\n    }\n});\n\n// Load API Gateway\nbroker.createService(ApiService);\n\n// Start server\nbroker.start();\n```\n\n**Test URLs:**\t\n- Call `test.hello` action: `http://localhost:3000/test/hello`\n\n- Get health info of node: `http://localhost:3000/~node/health`\n- List all actions: `http://localhost:3000/~node/actions`\n\n## Documentation\nPlease read our [documentation on Moleculer site](http://moleculer.services/docs/moleculer-web.html)\n\n## Test\n```\n$ npm test\n```\n\nIn development with watching\n\n```\n$ npm run ci\n```\n\n## License\nMoleculer-web is available under the [MIT license](https://tldrlegal.com/license/mit-license).\n\n## Contact\nCopyright (c) 2016-2021 MoleculerJS\n\n[![@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)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoleculerjs%2Fmoleculer-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoleculerjs%2Fmoleculer-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoleculerjs%2Fmoleculer-web/lists"}