node-adapter
v1.0.11
Published
A lightweight and extensible HTTP adapter, editable HTTP server, Webhook transformation, request relay platform. based on koa
Downloads
20
Maintainers
Readme
Introduction
A lightweight and extensible HTTP adapter, editable HTTP server, Webhook transformation, request relay platform.
Just route, filter, validate, transform, relay and response your HTTP requests.
Setup your HTTP server in 3 minutes by a few YAML configurations and a few TS/JS code snippets. Especially suitable for:
- HTTP adapter, such as transform one Webhook request to another
- Request relay, it could be HTTP proxy for another server
- Mock server, it could be a mock server for development
- Dynamic HTTP interface, as BFF(backend for frontend) or API Gateway
Demo
todo
Features
- Dynamic request routing by configuration files, configurable and extensible runtime environment
- Easy to use YAML configuration files and GUI. Extremely convenient for request transformation
- Dynamic business logic based on dynamic Typescript/ECMAScript code and Templates
- Out of box Prometheus Metrics API and REST API for management
- Perfect Scalability with Docker and Kubernetes
- Great Performance since dynamic functions are compiled AOT (Ahead-of-Time)
- Plugin development make complex business logic being configured dynamically
Architecture
Quick Start
Install
# by Docker (Recommended)
docker run --restart always -p 3000:3000 -d --name http-adapter code2life/http-adapter:v2
# by Docker, mount CONF_PATH
docker run --restart always -p 3000:3000 -d -e CONF_PATH=/conf -v /conf:/conf --name http-adapter code2life/http-adapter:v2
# by Kubernetes
kubectl apply -f https://raw.githubusercontent.com/Code2Life/http-adapter/master/build/kubernetes/deployment.yaml
kubectl apply -f https://raw.githubusercontent.com/Code2Life/http-adapter/master/build/kubernetes/service.yaml
# by NPM (Requires Node > v8.0.0)
npm install -g node-adapter-cli
http-adapter
# to see all available arguments
http-adapter --help
Configuration Example
todo
Plugins
todo
Todo
- pre-installed config examples, and downloaded by cli
- HTTP2.0 HTTPS support
- More storage types support
- document template grammar, and allow separate template file
- configure UI and REST interface, configure watch
- mixin plugin / marketplace system, and plugin development, application version control
- routing incoming websocket message
- further logging / tracing / monitoring / metrics, eliminate console.log
- transform to more forms of outbound message, such as RPC Call, MQ Publishing