Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/code2life/http-adapter
A lightweight and extensible HTTP adapter, editable HTTP server, Webhook transformation, request relay platform.
https://github.com/code2life/http-adapter
adapter gateway http-relay http-server koa prometheus relay typescript
Last synced: 3 months ago
JSON representation
A lightweight and extensible HTTP adapter, editable HTTP server, Webhook transformation, request relay platform.
- Host: GitHub
- URL: https://github.com/code2life/http-adapter
- Owner: Code2Life
- License: apache-2.0
- Created: 2019-03-30T12:51:18.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-03T19:35:28.000Z (about 2 years ago)
- Last Synced: 2024-11-10T23:40:33.918Z (3 months ago)
- Topics: adapter, gateway, http-relay, http-server, koa, prometheus, relay, typescript
- Language: TypeScript
- Homepage:
- Size: 456 KB
- Stars: 11
- Watchers: 2
- Forks: 7
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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
![](http://filecdn.code2life.top/http-adapter-architecture-v2.png)## Quick Start
### Install
```bash
# 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
```yaml
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