API网关、BFF模式与Bearer令牌安全
1. API网关与BFF模式概述
在构建应用程序时,最初的单体架构为应用的支持API提供了单一入口,这个入口可用于任何类型的客户端。然而,随着需求的变化,这种API变得越来越难以改进和扩展。而且,不同设备对API在缓存、压缩和认证等方面有不同的需求。
为了解决这些问题,我们将应用程序的功能分散到多个服务或微服务中,每个服务仅实现所需的功能。这种方法简化了每个服务的代码库,但却使客户端应用程序的代码库变得复杂,因为客户端需要跟踪多个服务端点。
API网关位于所有微服务之上,提供一个单一的入口,并允许我们实现多个实例,以满足使用它们的客户端应用程序的直接需求。这种调整被称为后端为前端(BFF)模式,它允许我们为需要的客户端应用程序专门定制后端服务。
以下是一个简单的聚合器代码示例:
.Content.ReadAsStringAsync();
var contentBuilder = new StringBuilder();
contentBuilder.Append(patient);
contentBuilder.Append(appointments);
var response = new StringContent
(
contentBuilder.ToString()
)
{
Headers = { ContentType = new
MediaTypeHeaderValue("application/json") }
};
return new DownstreamResponse(respon