manba

HTTP API Gateway

Github星跟蹤圖

Gitter
Build Status
Go Report Card

Manba/简体中文

Manba is a restful API gateway based on HTTP, which can be used as a unified API access layer.

Tutorial

A very detailed tutorial for beginners. Link
Below are video tutorials.
Basics:

Alternative bilibili.com video link: https://www.bilibili.com/video/av73432556/

Routing Configuration Tutorial:

Alternative bilibili.com video link: https://www.bilibili.com/video/av73432836/

JWT Plugin Configuration Tutorial:

Alternative bilibili.com video link: https://www.bilibili.com/video/av73433002/

Attention

Please make sure your Go version is 1.10 or above. Otherwise, undefined "math/rand".Shuffle error will occur when compiling. StackOverFlow Link

Features

  • Traffic Control (on Server or API)
  • Circuit Breaker (on Server or API)
  • Load Balance
  • Service Discovery
  • Plugin
  • Routing (Divert Traffic, Duplicate Traffic)
  • API Aggregation
  • API Argument Check
  • API Access Control (White and Black List)
  • API Default Return Value
  • API Customized Return Value
  • API Result Cache
  • JWT Authorization
  • API Metric Imports Prometheus
  • API Retry After Failure
  • Backend Server Health Check
  • Open Management of API (GRPC、Restful)
  • Websocket Support
  • Online Data Migration Support

Docker

The following content requires reader some knowledge of Docker. You can refer to this book, or check out the official documentation

Available Docker Images

  • fagongzi/proxy

    proxy component, production ready

  • fagongzi/apiserver

    apiserver component, production ready

Quick start with docker-compose

docker-compose up -d

Use http://127.0.0.1:9093/ui/index.html to access apiserver

Use http://127.0.0.1 to access to your API

Architecture

Web UI

Available Manba Web UI Projects:

Components

Manba consists of proxy and apiserver.

Proxy

Proxy is a component which provides service to clients. Proxy is a stateless node. Multiple proxies can be deployed to handle huge traffic.
More.

ApiServer

ApiServer provides GRPC and Restful to manage metadata for users. ApiServer integrates official Web UI.
More.

Concepts of Manba

Server

A server is a a real backend service.
More.

Cluster

Cluster consists of servers which provide the same service. A server is chosen to handle a specific request based on a load balance strategy.
More.

API

API is a key concept of Manba. We can manage external APIs in Manba and their distribution rules, aggregation rules and URL matching rules.
More.

Routing

Routing is a route strategy. Cookie, Querystring, Header and Path in HTTP Request dictate traffic distribution and traffic duplication to a specific cluster. Through this feature, AB test and online traffic divertion is achieved.
More.

Getting Involved

More

WeChat

主要指標

概覽
名稱與所有者fagongzi/manba
主編程語言Go
編程語言Go (語言數: 4)
平台
許可證Apache License 2.0
所有者活动
創建於2016-04-25 09:17:37
推送於2023-07-12 07:59:34
最后一次提交2022-01-13 14:59:49
發布數30
最新版本名稱v3.0.0-RC.5 (發布於 )
第一版名稱v2.0.0-beta (發布於 )
用户参与
星數3.3k
關注者數183
派生數754
提交數551
已啟用問題?
問題數156
打開的問題數14
拉請求數68
打開的拉請求數7
關閉的拉請求數17
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?