{"id":13880929,"url":"https://github.com/dehypnosis/moleculer-api","last_synced_at":"2026-02-28T12:00:28.577Z","repository":{"id":83573386,"uuid":"201903920","full_name":"dehypnosis/moleculer-api","owner":"dehypnosis","description":"A dynamic API Gateway which updates REST endpoints, GraphQL schema, Websocket handlers and access control policies by integrating metadata of discovered remote services.","archived":false,"fork":false,"pushed_at":"2020-11-19T05:25:20.000Z","size":4357,"stargazers_count":15,"open_issues_count":7,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-09T16:56:29.138Z","etag":null,"topics":["moleculer"],"latest_commit_sha":null,"homepage":"https://moleculer-api.gitbook.io/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dehypnosis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-08-12T09:56:47.000Z","updated_at":"2024-01-08T02:14:57.000Z","dependencies_parsed_at":"2024-01-13T21:11:14.819Z","dependency_job_id":null,"html_url":"https://github.com/dehypnosis/moleculer-api","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/dehypnosis/moleculer-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dehypnosis%2Fmoleculer-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dehypnosis%2Fmoleculer-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dehypnosis%2Fmoleculer-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dehypnosis%2Fmoleculer-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dehypnosis","download_url":"https://codeload.github.com/dehypnosis/moleculer-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dehypnosis%2Fmoleculer-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29933021,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T09:58:13.507Z","status":"ssl_error","status_checked_at":"2026-02-28T09:57:57.047Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["moleculer"],"created_at":"2024-08-06T08:03:40.279Z","updated_at":"2026-02-28T12:00:28.008Z","avatar_url":"https://github.com/dehypnosis.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Introduction\n\n## moleculer-api\n\nA dynamic API Gateway which updates REST endpoints, GraphQL schema, Websocket handlers and access control policies by integrating metadata of discovered remote services.\n\n[![Build Status](https://travis-ci.org/qmit-pro/moleculer-api.svg?branch=master)](https://travis-ci.org/qmit-pro/moleculer-api) [![Coverage Status](https://coveralls.io/repos/github/qmit-pro/moleculer-api/badge.svg?branch=master)](https://coveralls.io/github/qmit-pro/moleculer-api?branch=master) [![David](https://img.shields.io/david/qmit-pro/moleculer-api.svg)](https://david-dm.org/qmit-pro/moleculer-api) [![Known Vulnerabilities](https://snyk.io/test/github/qmit-pro/moleculer-api/badge.svg)](https://snyk.io/test/github/qmit-pro/moleculer-api) [![NPM version](https://img.shields.io/npm/v/moleculer-api.svg)](https://www.npmjs.com/package/moleculer-api) [![Moleculer](https://badgen.net/badge/Powered%20by/Moleculer/0e83cd)](https://moleculer.services)\n\nMoleculer API Gateway는 분산 서비스 환경에서 동적으로 마이크로 서비스들의 API 스키마를 수집하고 조합하며 무중단으로 API를 제공하는 웹 서버 모듈입니다.\n\n서비스 API 스키마는 분산 서비스의 프로시저\\(이하 **액션**\\)의 호출\\(`call`\\)이나 중앙 메시징 서비스에 대한 **이벤트** 발행\\(`publish`\\) 및 구독\\(`subscribe`\\)을 웹 기반 프로토콜\\(REST, GraphQL, WebSocket 지원\\)의 엔드포인트에 맵핑합니다. 서비스 API 스키마는 단일한 JSON 포맷으로 구성되어있으며 각 맵핑에 대한 접근 제어 정책을 포함 할 수 있습니다.\n\n서비스 API 스키마가 제거, 수정, 추가되면 Gateway는 기존 통합 API 스키마에 병합을 시도하고 성공시 무중단으로 라우터를 업데이트하며 그 결과 메시지를 원격 서비스에 다시 보고합니다.\n\n\n\n### Features\n\n* 분산 서비스의 API 스키마를 수집하고 병합하여 API를 실시간으로 업데이트\n* 개발 편의를 위한 브랜치 및 태그\n* 상태 검사 및 문서 생성\n  * API Gateway 상태 검사\n  * API 엔드포인트별 상태 검사\n  * API 엔드포인트별 설명, 파라미터, 접근 제어 정보 생성\n  * 분산 서비스 액션 및 이벤트 구독, 발행 정보 생성\n* 확장 가능한 웹 서버 구성\n  * Cookie/Body Parser\n  * ETag\n  * CORS\n  * HTTP/2\n  * TLS\n* 미들웨어 방식의 컨텍스트 생성\n  * 인증\n  * Locale\n* 프로토콜 플러그인 \\(핸들러 및 스키마 확장\\)\n  * REST\n  * GraphQL\n  * WebSocket \\(TODO\\)\n* 접근 제어 정책 플러그인 \\(핸들러 및 스키마 확장\\)\n  * OAuth2 scope 기반 접근 제어\n  * JavaScript [FBAC; Function Based Access Control](https://arxiv.org/abs/1609.04514) 기반 접근 제어\n\n## Development\n\n### 1. Yarn Scripts\n\n* `yarn dev [example=simple]` - Start development \\(nodemon with ts-node\\)\n* `yarn build`- Uses typescript to transpile service to javascript\n* `yarn lint` - Run TSLint\n* `yarn test` - Run tests \u0026 generate coverage report\n* `yarn test --watch` - Watch and run tests\n\n## Contribution\n\nPlease send pull requests improving the usage and fixing bugs, improving documentation and providing better examples, or providing some testing, because these things are important.\n\n## License\n\nThe project is available under the [MIT license](https://tldrlegal.com/license/mit-license).\n\n## Contact\n\nCopyright \\(c\\) 2019 QMIT Inc.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdehypnosis%2Fmoleculer-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdehypnosis%2Fmoleculer-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdehypnosis%2Fmoleculer-api/lists"}