首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏网络日志

    graphql+koa2 前端bff

    使用graphql的优势: 前端把握查询的主动权,可定义你需要查询的字段过滤冗余,另外减少两端的沟通 接手bff前端可作为空间更大,包括做一些鉴权 请求合并更加便利(以前初始化多个请求需要一起返回都是使用 另外后端同学对于bff其实不怎么感冒,因为数据聚合对他们来说没什么含量,完全是对前端同学服务。所以我们完全可以引入查询来接手后端同学的bff。 后端同学直接集成 (java接口(restful或者graphql)-->前端) 前端增加中间服务(java接口-->前端中间服务nodejs(graphql)-->前端) 对于第一种方式,后端同学可能更改会更大 前端中间服务的配置 中间服务使用koa2搭建,当然你也可以使用express等等其他。 graphql的查询中另外一个比较好的地方在于指令,指令的加入会让bff更加有做为(放在下一次讲)

    55010编辑于 2024-05-30
  • 来自专栏Web行业观察

    前端构建BFF创建业务中间后端逻辑架构

    BFF的作用 BFF的主要作用包括: 数据聚合:将来自多个后端服务的数据聚合成前端需要的格式。 协议转换:将后端服务的RESTful API或GraphQL API转换为前端更易用的接口。 选择BFF框架 在搭建BFF时,选择一个合适的框架非常重要。以下是一些常用的BFF框架: Node.js + Express/Koa:适合小型项目或团队,易于上手。 我们以Node.js + Express为例,详细介绍如何搭建BFF。 安装Node.js和npm 在开始之前,确保你的计算机上已经安装了Node.js和npm。 安装完成后,可以通过以下命令检查Node.js和npm的版本: node -v npm -v 创建项目目录 首先,创建一个新的项目目录,并进入该目录: mkdir bff-project cd bff-project 集成认证和授权 为了确保前端请求的安全性,我们可以在BFF集成认证和授权逻辑。

    78910编辑于 2024-12-06
  • 来自专栏黯羽轻扬

    Backend For Frontend (BFF)

    复用问题 拆开之后,多个BFF之间容易产生冗余代码,尤其是一些通用的后端逻辑(如授权、认证、限流等等) 为了消除BFF间的代码冗余,一般采用两种做法: 要么多BFF合一 要么在BFF之上加一Edge 具体实践中,BFF通常不是图示的样子,主要变化在于: 按业务线拆分BFF 加一网关,负责实现路由、认证、监控、限流熔断、安全等功能 按业务线拆分的BFF更像是建立在下游基础服务之上的业务型微服务,只是这些微服务由对应业务的前端团队负责开发维护 广义的,可以理解为更细粒度的BFF,即每块业务对应一个BFF(不再按用户体验差异去分) 网关负责实现通用的边界服务,如认证、限流等,让BFF更专注于业务相关的部分: 前端体验 ------------ -- ----- BFF BFF ----- ----- ^ ^ ^ ^ / \ / \ -------------------- 下游服务 P.S.另外,还有不引入BFF,而只添一转发服务来解决数据的聚合 从分工的角度看: BFF模式不仅仅是一种技术架构,从社会分工角度讲,BFF更是一种多元价值导向的分层架构,每一都有不错的空间去施展。

    2.8K40发布于 2019-06-12
  • 来自专栏黑客下午茶

    一种不错的 BFF Microservice GraphQLREST API 的开发方式

    还添加了基于响应性扩展的示例,以演示如何将其用于构建微服务 API 边缘服务(edge-service)、前端的后端(BFF)或将其用作构建任何类型微服务的基础。 swapi.co/api/people/8/", "http://swapi.co/api/people/9/", "http://swapi.co/api/people/11

    3.5K10发布于 2021-05-27
  • 来自专栏JavaEdge

    BFF 架构简介

    Sam Newman详细地说明了BFF。 客户端都不是直接访问服务器的公共接口,而是调用BFF提供的接口,BFF再调用基层的公共服务,不同的客户端拥有不同的BFF,它们定制客户端需要的API。 而使用BFF在很大程度能避免这样的问题。 使用BFF的另一个优点就是当由于某一客户端需要调用调用多个不同的服务端接口来实现某一功能时,可以直接在对应的BFF编写相应的API,而不会影响到基层的公共服务,且客户端不用直接向多个后台发起调用,可以优化性能 当然,凡事有利有弊,BFF带来便利好处的同时也会引起一些问题,如代码重复,加大开发工作量等。所以在使用时需要结合现实情况仔细斟酌,符合项目的应用开发背景。例如蚂蚁财富使用BFF的场景如下。 ?

    1.6K30发布于 2021-02-23
  • 来自专栏随心分享

    BFF与Nestjs实战

    适用场景 BFF虽然比较流行,但不能为了流行而使用,要满足一定的场景并且基建很完善的情况下才使用,否则只会增加项目维护成本和风险,收益却非常小,我认为的适用场景如下: 后端有稳定的领域服务,需要聚合 需求变化频繁,接口经常需要变动:后端有一套稳定的领域服务为多个项目服务,变动的话成本较高,而bff针对单一的项目,在bff变动可以实现最小成本的改动。 总结 经过上文我们可以对BFF的概念有一个基本的了解,并且按照步骤可以自己搭建一个Nestjs小应用,但和企业级应用差距还很大。 接BFF需要有完善的基建和合适的业务场景,不要盲目接入 Nestjs基于Express实现,参考了springboot的设计思想,入门很简单,精通需要理解其原理,尤其是依赖注入的设计思想 参考文献 我理解的 BFF NestJs官方文档

    3.5K10编辑于 2022-11-19
  • 来自专栏ThoughtWorks

    探索原味BFF模式

    BFF — Backend For Frontends,经典分布式架构设计模式之一。我在学习和工作经验累积中,逐渐加深了对 BFF 的理解。 寻找历史的线头 在毫无头绪的情况下,我们可以首先从Thoughtworks技术雷达中 BFF 的条目入手,去找到一些历史的蛛丝马迹。BFF 条目的发布时间是在 2015 年 11 月10 日。 紧接着,在谷歌搜索关键字Backend for Frontends 以及将时间范围限定在 2015 年 1 月 1 日到 2015 年 11 月 10 日。 终于,我们可以说 BFF 模式是在解决 SoundCloud的分布式系统问题中首次出现。下面,让我们一起回到BFF第一次发挥威力的现场吧。 BFF 新的形态出现了,具体如下图所示: 随着时间推移,SoundCloud 的 BFF 也在增加。他们已经在生产环境同时维护着 5 个 BFF 了。为了进一步提高生产力,减少不必要的重复。

    75020编辑于 2022-09-14
  • 来自专栏Tencent Serverless 官方专栏

    Yunong Xiao : Serverless Is Your BFF

    然而语言只是服务端开发最表层也是最易突破的一,可靠性、速度性能、安全性、架构可扩展性、甚至运维,都是前端向全栈发展需要考虑的关键因素。 10月20日, JSConf大会上,腾讯云中间件总经理 Yunong Xiao 将发表《Serverless Is Your BFF》主题演讲,从前端发展演进、前端到全栈的路径和问题以及如何利用Severless 分享时间 时间: 10月20日10:40-11:10 地点:上海杨浦区江湾城路99号尚浦中心刘翔中心 ?

    98040发布于 2019-10-21
  • 来自专栏SpringBoot 核心技术

    初识BFF架构设计

    最近在公司的微服务架构中遇到了一些多终端访问接口的问题,不同的终端拥有不同的接口服务,有不同的操作数据的能力,针对这种业务场景做出了调研,我们是否可以在不同的访问进行业务逻辑处理,获取不同的数据内容呢 多端共用一个BFF ? 每个端提供一个BFF ? 如果我们为每一个端点都提供一个BFF,每个端点的BFF处理自身的业务逻辑,需要数据时从基础服务内获取,然后在接口返回之前进行组装数据用于实例化返回对象。 这样基础服务如果有新功能添加,BFF几乎不会受到影响,而我们如果后期把App端点进行拆分成Android、IOS时我们只需要将app-bff进行拆分为android-bff、ios-bff,基础服务同样也不会受到影响 也同样带来了一些问题,如下所示: 响应时间延迟(服务如果是内网之间访问,延迟时间较低) 编写起来较为浪费时间(因为在基础服务上添加的一转发,所以会多写一部分代码) 业务异常处理(统一格式化业务异常的返回内容

    2.3K50发布于 2019-10-09
  • 来自专栏码农那些事!!!

    聊聊微服务中的 BFF 架构

    此时,整个供应链系统的架构如下图所示: 上图中的网关主要负责路由、认证、监控、限流熔断等工作。 路由:所有的请求都需要通过网关进行处理,网关再根据 URI 将请求指向对应的后台服务,如果同一个服务存在多个服务器节点,网关还将承担负载均衡的工作。 认证:对所有的请求进行集中认证鉴权。 为了解决这 2 个问题,最终我们决定抽象一个 API 。 API 一般来说,客户端的接口需要满足聚合、分布式调用、装饰这三种需求。 从图中我们发现,所有请求经过网关后,全部交由一个共用的 API 进行处理,而该 API 没有自己的数据库,它的主要职责是调用其他后台服务。 通过这样的设计方案后,以上两个问题就得到了很多地解决。 我们就可以考虑使用 BFF 了。 BFF(Backend for Front) BFF 不是一个架构,而是一个设计模式,它的主要职责是为前端设计出优雅的后台服务,即一个 API。

    2.4K20编辑于 2023-05-01
  • 来自专栏前端那些趣事

    你学BFF和Serverless了吗

    ❝ 前沿:前段时间在公司内部分享了关于bff和serverless的知识体会,从概念、特征、和应用场景再到简单的实践,今天借此机会跟大家分享,什么是BFF? 什么是serverless? ❞ 1.BFF ❝ 在聊Serverless之前跟大家先谈谈BFFBFF顾名思义就是Backend For Frontend,用中文解释就是服务于前端的后端,那么为什么会有BFF? ❞ 前端同学和后端同学都各有各的道理,有没有一种解决方案可以化解这种尴尬的场景,于是就有了BFF 1.1 介绍 ❝ BFF初衷是在后台服务与前端(客户端)之间添加一,接下来我们来看看下面这张图 ❞

    90131发布于 2020-10-15
  • 来自专栏ThoughtWorks

    微服务下使用GraphQL构建BFF | 洞见

    加入了BFF 的前后端架构 ? 加入了BFF的前后端架构中,最大的区别就是前端(Mobile, Web) 不再直接访问后端微服务,而是通过 BFF 进行访问。并且每种客户端都会有一个BFF服务。 从微服务的角度来看,有了 BFF 之后,微服务之间的相互调用更少了。这是因为一些UI的逻辑在 BFF 进行了处理。 比如作为在 BFF 使用 GraphQL, 这一BFF 并不需要任何的数据库或者存储媒介。 整体来看,我们的前后端架构图如下,三个 App 客户端分别使用 GraphQL 的形式请求对应的 BFFBFF 再通过 Consul 服务发现和后端通信。 在我们这个系统中 BFF 并不做鉴权服务,所有的鉴权过程全部由各自的微服务模块负责。BFF 只提供中转的功能。BFF 是否需要集成鉴权认证,主要看各系统自己的设计,并不是一个标准的实践。 3.

    2.4K60发布于 2018-04-17
  • 来自专栏架构精进之路

    关于 BFF 架构设计的胖瘦之争

    在计算机科学中,所有问题都可以通过加一来解决,于是 BFF 架构设计应运而生。 2. 在服务化的系统中规划阶段,有一些必然会被讨论的话题: 要不要 BFF ? 要不要编排? 要不要网关?什么是网关? 应用网关和网关的区别是什么? 后端(领域服务)服务之间要不要互相调用? 要不要使用 BFF 来编排后端服务? BFF 是不是编排BFF 能不能宏观上对应 DDD 的应用? ...... ,统一由 BFF 处理 不同类型的客户端一套 BFF 非常接近 DDD 四架构中的应用,处理面向场景的业务 因为它的职责比较多,我们暂且称其为:胖 BFF。 瘦 BFF 的好处是: 端到端交付,前端开发人员直接使用后端领域服务的 API 文档 开发效率高,避免多编写一 BFF 减少一次集成 对应的,瘦 BFF 的弊端可想而知: 没有编排,服务之间相互依赖

    41120编辑于 2024-12-06
  • 来自专栏程序员成长指北

    如何在中后台领域玩转BFF架构

    比如一个商家详情页即需要仓储数据,也需要资产数据,此时我们在 BFF 将仓储和资产数据请求回来组装吐给前端。 字段转换:字段过滤、数据格式化等工作。 比如资产域的商户名字段叫 businessName,而仓储域的商户名字段叫 shopName,此时可以在BFF统一掉,这样前端就不需要做判断了。 BFF 核心架构 核心架构 以上是 BFF 的核心架构图,前端即中后台应用,后端域即后端服务,右侧的工具支撑是公司的一些基础公共服务,中间的就是 BFF 核心实现,我们从上往下看: 业务:可以在这一做业务编排 调用链路 核心架构讲完后,再看下整个 BFF 架构的调用链路: 调用链路从上往下,我们的中后台应用通过 HTTP 请求到 Nginx 服务器上,Nginx 转发到 BFF BFF 通过 RPC 基于 Serverless 的BFF改造 SFF 架构 上图是改造后的BFF架构,相比于一代的 BFF 架构,这里主要多了两块内容,一块是 FaaS ,另外一块是开发者平台。

    1.8K30发布于 2021-08-26
  • 来自专栏图南科技

    系统服务构建-BFF助力前后端分离

    不过,要简单,省心,前端还得依赖 BFF 的聚合裁剪。 BFF 的职责 ? BFF 基于以上的讨论,我们可以归纳出 BFF 的职责是:基于后端基础数据做业务,按需整合接口,服务于前端应用的需求多样性和快速迭代频率。 BFF 由谁来负责开发 如果 BFF 是一个项目的话,这个项目一般由前端团队负责。 注意这里是一般,具体的度量标准就是看业务的体量。 Using one server-side BFF per user interface.png BFF 优势 增加 BFF 可以有哪些优势 我们可以把 BFF 层理解为经典的软件架构分层中的业务逻辑 ❞ 现实中的 BFF 在和别人聊天的过程中,BFF 这个概念还比较新颖和生涩。 实际上还是要依靠业务驱动,BFF 才能逐渐演化为一项目的集合,把能力以服务化的形式共享到前端的多个应用。

    2.4K10发布于 2020-05-27
  • 来自专栏Alter聊科技

    BFF博主的走红启示录

    为何藏在微博里的BFF博主们能成为“风口”的宠儿,并一路得到幸运之神眷顾? 其实BFF博主的走红并非孤例。 可以看到,两对博主的聪明之处在于,都没有过度消耗BFF的人设,而是采用了“BFF+垂类”的内容形式,围绕年轻人喜欢的游戏、美妆、综艺、爱豆等话题持续生产优质内容,再以搞笑幽默的风格还原年轻人生活中的“真实感 BFF博主的走红,让我们看到了博粉关系的第三次进化。 这种博粉关系的进化,显然不是BFF博主的专属,但BFF博主们更擅长去经营与粉丝的关系,粉丝不会简单地从固定的内容中判断博主,不必刻意打造站不住脚的人设,博粉关系也就更为稳定。

    67610编辑于 2023-01-31
  • 来自专栏超级架构师

    「Web应用架构」模式:前端的后端(BFF)

    每个用户界面使用一个服务器端BFF BFF紧紧地关注于一个UI,而仅仅是那个UI。这使得它能够集中注意力,因此会更小。 有多少BFFBFF(例如,新的Creator应用程序Pulse使用不同的BFF)。 首先,这些问题必须由BFF自己管理,但我们还需要确保调用BFF的客户机能够解释部分响应并正确地呈现它。 再利用 每个用户界面都有一个BFF的一个关注点是,在BFF本身之间可能会有很多重复。 一方面,这个功能的大部分都是通用的,所以我倾向于使用另一个位于上游的来实现它,可能使用类似Nginx或Apache服务器的。另一方面,这样一个额外的也会增加延迟。 此外,要构建类似于生产的堆栈,需要部署的越多,开发和测试就越复杂—将所有这些关注点都放在BFF中作为一个更独立的解决方案可能会很有吸引力: ?

    2.1K20发布于 2020-07-20
  • 来自专栏不做码农的开发者

    【asp.net core 系列】- 11 Service的实现样板

    SysUserAuthEntity SysUserAuth { get; set; } } } 这里并没有使用数据库Sql语句作为数据库描述,而是使用了Entity类作为描述,这是因为数据库到实体类之间还是有一转换 总结 这一篇通过几个简单的示例为大家介绍了一下Service的开发逻辑以及理念。下一篇将为大家介绍一下.net core中几种简单的加密实现。

    90530发布于 2020-06-24
  • 来自专栏Nodejs技术栈

    Nodejs BFF 开发 8 个月的心路历程

    来自 “Nodejs技术栈” 交流群 coolliyong 的 Nodejs BFF 8 个月开发过程中心得分享! BFF拓展到了CBS,也开始变得真正有价值,也开始有了踩坑 CBS customer business System 开会时leader们都是这么叫的,我预计应该是这个意思 大概是10月份左右,我们接到了新的任务 接管另一套系统,融入到我们的App,从前端到后端(C服务)都要我们写,这时候我开始看Java代码,用Node.js重写后端逻辑,也开始需要有了更多的后端的东西,Mysql,服务发现,日志,Redis缓存, 还有其他一些坑,没少麻烦架构师帮忙看问题,(也很感谢架构师 重新架构BFF,CBS和BFF分开,开始拓展更多的业务系统 一段时间内相对平稳做迭代,这时候架构师开始对我们组进行要求,所有的日志必须齐全, 之前我们是考虑了多端的场景的,多端在这里依然是优势,中台只需要给出一份数据,BFF可以根据不同端给出不同数据适用nodejs做接入非常合适,开发迅速,部署方便,成本极低 前端开发的时候总是要和后端沟通字段的问题

    2.7K30发布于 2020-03-18
  • 来自专栏前端Q

    BFF模式:微服务前端数据加载的最佳实践?

    前端团队可以共享客户端应用程序及其底层资源消耗的所有权,从而提高开发速度。下图显示了团队划分 BFF 的例子。 ? 避免使用自包含的大而全的 API 实现 BFF——你的自包含 API 应该位于微服务。大多数开发人员忘记了这一点,也开始在 BFF 中实现服务级别 API。 你应该记住,BFF 是客户端和服务之间的转换。当数据从服务端 API 返回时,其目的是将其转换为客户端应用程序指定的数据类型。 在这种情况下,所有这些操作系统的一个 BFF 就足够了。iOS 不需要单独的 BFF,Android 也不需要单独的 BFF。 避免过度依赖 BFF——BFF 只是一个转换。 你的 API 和前端应该负责所有的功能和安全方面,而不管是否存在 BFF。因为 BFF 只是填补一个空白,而不是向应用程序添加任何功能或服务。

    2.2K30发布于 2021-04-29
领券