Golang 轻量 GraphQL 组件 amoeba
为什么使用GraphQL?
在实际工作中往往会有这种情景出现:比如说我需要展示一个游戏名的列表,可接口却会把游戏的详细玩法,更新时间,创建者等各种各样的 (无用的) 信息都一同返回。特别是业务类微服务直接交互使用更为方便。
为什么选择 amoeba
非常轻量、简单、性能好。无需冗余大量配置,无复杂规则,但满足业务需求。
原理
对接口输入输出的 JSON 依赖规则,进行,该规则利用了JSON Schema特性。规则可以依赖各种配置。
本机转发,原接口保持不变,无需修改代码或上线。
使用说明
- 在服务启动时也加载 amoeba 组件,可以参考 mock目录下文件。
- 对接口定义 生成 schema,并做简单修改,规则参加 github说明。
amoeba.Start(LocalMountRules)
router.Any("/amoeba/*proxyPath", amoeba.ReverseProxy)
router.Run(":8080")
请Star,一起贡献
https://github.com/lqiz/amoeba
入群讨论:amoeba、792177539