8、前端请求服务GateWay网关流程

1、前端请求后端接口的流程如下:
在这里插入图片描述
前端发送过来的地址是:

http://localhost:88/api/product/category/list/tree

经过网关过滤器后,地址会发生改变转换为:

http://localhost:8088/product/category/list/tree

前端所有的请求地址都是直接访问网关的
在这里插入图片描述

2、网关的路由规则在yml配置文件中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 修改API Gateway中的GET请求体 通常情况下,HTTP GET 请求不携带消息主体(body),因为其设计初衷是为了获取资源而不是向服务器发送大量数据。然而,在某些特殊场景下确实存在需要传递少量额外信息的需求。 为了实现在 API Gateway 中允许并修改 GET 请求请求体: #### 配置 API Gateway 接受带有 Body 的 GET 请求 可以通过调整 API Gateway 设置使其接受包含 body 的 GET 请求。这主要涉及到对网关行为进行定制化配置[^1]。 ```json { "openapi": "3.0.1", "paths": { "/example": { "get": { "requestBody": { /* 定义可选的消息体 */ "content": { "application/json": { "schema": {} } } }, ... } } } } ``` 需要注意的是,并不是所有的客户端都会支持这种非标准做法,因此还需确保前端应用能够正确构建此类请求。 #### 处理和转发 GET 请求体至后端服务 当 API Gateway 收到带 body 的 GET 请求时,可以对其进行预处理再转发给目标微服务。此过程可能涉及解析、验证以及格式转换等工作[^2]。 ```python def handle_get_with_body(event, context): # 假设 event['body'] 存储了来自客户的原始负载 request_payload = json.loads(event.get('body', '{}')) # 对 payload 进行必要的操作... response_from_backend = call_downstream_service(request_payload) return prepare_response(response_from_backend) # 调用下游服务函数简化示意 def call_downstream_service(payload): pass ``` 由于 HTTP 协议本身并没有严格规定不允许 GET 方法附带实体内容,所以理论上这是可行的方案之一。不过实际开发过程中应谨慎评估这样做是否会带来兼容性和安全性方面的问题[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值