# 简介

Melody

Melody 是一个高性能的开源API网关。

它的核心功能是创建一个API,将许多微服务聚合到单个端点中,为您自动完成繁重的工作:聚合、转换、过滤、解码、限制、身份验证等等。

Melody 不需要编程,因为它提供了一种声明性的方法来创建端点。它具有良好的结构和层次,可以使用社区或内部开发的即插即用中间件扩展其功能。

Melody 专注于成为一个纯粹的API网关,而不是连接到HTTP传输层。

# 为什么需要API网关

当API内容的使用者(特别是在microservices中)查询后端服务时,实现会因其microservices响应的大小和复杂性而承受很大的复杂性和负担。

Melody 是一个API网关,位于客户机和所有源服务器之间,添加了一个新的层,该层消除了客户机的所有复杂性,只为他们提供UI所需的信息。

Melody 充当多个源到单个端点的聚合器,允许您对响应进行分组、包装、转换和收缩。此外,它还支持多种中间件和插件,允许您扩展功能,例如添加OAuth授权或安全层(SSL、证书、HTTP严格传输安全、点击劫持保护、HTTP公钥固定、MIME嗅探保护、XSS保护)。

Melody 是在Go中编写的,支持多个平台,并在设计结构上参考了KrakenD框架。

# 举个例子

移动开发人员需要构建一个单独的首页,该首页需要从多个呼叫到其后端服务的数据,例如:

api.store.server/products
api.store.server/marketing-promos
api.users.server/users/{id_user}
api.users.server/shopping-cart/{id_user}
1
2
3
4

屏幕很简单,只需要从4个不同的源检索数据,等待往返,然后从响应中只选择几个字段。移动客户端不必进行这些调用,而是可以将单个端点调用给Melody

melody.server/frontpage/{id_user}
1

整个过程变成了这样:

通过选择此实现,移动客户端将自己与后端实现隔离。每当后端更改配置时,移动客户端的API配置不用改变,并且通过简单的配置更改来更新网关。

同时,后端生成的数据量与最终传输到客户端的数据量之间存在大小差异。

# 安装Melody

# 下载二进制文件

Melody 使用go编写,build之后是单个二进制文件,无需任何依赖,所以你可以直接前往下载Melody1.0.0

# 通过源码编译

首先git你应该安装好

git clone git@github.com:granty1/melody.git
1

这样 Melody 的全部代码就已经拉取到了你的本地

执行编译命令

make build
1

在你的目录下会多出一个二进制文件melody,如果是windows环境会多出melody.exe

# 使用Melody

Melody 使用起来非常简单。它只要求您传递配置文件的路径(定义行为和端点)。另外,您可以使用-d标志启用调试,这几乎就是所有的命令。

使用终结点定义生成配置文件。生成它的简单方法是使用Melody Configer

获取到的配置文件应该像这样melody.json

通过check命令去检察你的配置文件格式是否存在问题

./melody check -c melody.json -d
1

启动 Melody

./melody run -c melody.json -d
1

# 详细命令


███╗   ███╗███████╗██╗      ██████╗ ██████╗ ██╗   ██╗
████╗ ████║██╔════╝██║     ██╔═══██╗██╔══██╗╚██╗ ██╔╝
██╔████╔██║█████╗  ██║     ██║   ██║██║  ██║ ╚████╔╝ 
██║╚██╔╝██║██╔══╝  ██║     ██║   ██║██║  ██║  ╚██╔╝  
██║ ╚═╝ ██║███████╗███████╗╚██████╔╝██████╔╝   ██║   
╚═╝     ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚═════╝    ╚═╝   
                                                     
Version:1.0.0

Melody help you to sort out your complex api

Usage:
  melody [command]

Available Commands:
  check       check that the config
  graph       generate graph of melody server
  help        Help about any command
  run         run the Melody server

Flags:
  -c, --config string   Path of the melody.json
  -d, --debug           Enable the Melody debug
  -h, --help            help for melody

Use "melody [command] --help" for more information about a command.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

Melody 提供了四个命令供您使用:

  • melody check (检察配置文件内容格式是否正确)
  • melody graph (根据配置文件生成有向图,预览网关结构)
  • melody help (查看帮助)
  • melody run (运行网关)
Last Updated: 3/14/2020, 2:23:45 AM