Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

Awesome Lists containing this project

README

        

Http Adapter logo


Build Status
Coverage Status
Codacy Badge
codebeat badge
Version
Version
License

## 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