一个开放的框架,用于通过中间件组装超高性能的 API 网关;前身为 KrakenD 框架,是 KrakenD API 网关 的核心服务。
REST API 内容的消费者(特别是在微服务中)经常查询并非为 UI 实现而编写的后端服务。这当然是一个好习惯,但 UI 消费者需要进行实现,这会因为微服务响应的大小而带来很多复杂性和负担。
Lura 是一个 API 网关 构建器和代理生成器,它位于客户端和所有源服务器之间,添加了一个新层,消除了客户端的所有复杂性,只向它们提供 UI 所需的信息。Lura 充当多个来源到单个端点的 聚合器,允许您对响应进行分组、包装、转换和缩减。此 外,它支持大量中间件和插件,使您能够扩展功能,例如添加 OAuth 授权或安全层。
Lura 不仅支持 HTTP(S),而且由于它是一组通用库,您可以构建各种类型的 API 网关和代理,包括例如 RPC 网关。
一个移动开发者需要构建一个单一的前端页面,该页面需要来自 4 个不同后端服务调用的数据,例如:
1) api.store.server/products
2) api.store.server/marketing-promos
3) api.users.server/users/{id_user}
4) api.users.server/shopping-cart/{id_user}
这个页面非常简单,移动客户端 只 需要从 4 个不同的源检索数据,等待往返,然后从响应中只挑选几个字段。
如果移动端可以调用单个端点呢?
1) lura.server/frontpage/{id_user}
这就是 Lura 可以为您做的事情。它看起来是这样的:

Lura 将合并所有数据并只返回您需要的字段(图中大小的差异)。
访问 Lura 项目网站 获取更多信息。
Lura 项目 框架的源代码。它旨在与您自己的中间件配合使用,并通过使用小型、独立、可重用的组件来扩展功能,遵循 Unix 哲学。
如果您想 从源代码构建您的 API 网关,或者想 在另一个应用程序中重用组件,请使用此仓库。
如果您需要一个功能完整的 API 网关,您可以下载适合您架构的 KrakenD 二进制文件 或 自己构建。
Lura 项目作为一个 Go 库 呈现,您可以在自己的 Go 应用程序中包含它来构 建强大的代理或 API 网关。有关完整示例,请查看 KrakenD CE 仓库。
当然,您需要在系统中 安装 Go 来编译代码。
一个现成的示例:
package main import ( "flag" "log" "os" "github.com/luraproject/lura/config" "github.com/luraproject/lura/logging" "github.com/luraproject/lura/proxy" "github.com/luraproject/lura/router/gin" ) func main() { port := flag.Int("p", 0, "服务端口") logLevel := flag.String("l", "ERROR", "日志级别") debug := flag.Bool("d", false, "启用调试") configFile := flag.String("c", "/etc/lura/configuration.json", "配置文件路径") flag.Parse() parser := config.NewParser() serviceConfig, err := parser.Parse(*configFile) if err != nil { log.Fatal("错误:", err.Error()) } serviceConfig.Debug = serviceConfig.Debug || *debug if *port != 0 { serviceConfig.Port = *port } logger, _ := logging.NewLogger(*logLevel, os.Stdout, "[LURA]") routerFactory := gin.DefaultFactory(proxy.DefaultFactory(logger), logger) routerFactory.New().Run(serviceConfig) }
访问 框架概述 了解有关 Lura 项目组件的更多详细信息。
查看几个 Lura 组件的 基准测试结果
我们总是很高兴收到贡献。如果您有问题、建议、错误,请开启一个 issue。 如果您想提交代码,请创建 issue 并向我们发送 pull request 以供审核。
阅读 CONTRIBUTING.md 获取更多信息。
享受 Lura!


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频


实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。


选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。


像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号