API网关 APIG
API网关 APIG
- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- APIG业务使用流程
- 创建用户并授权使用APIG
- 创建APIG实例
- 开放API
- 配置API调用授权(可选)
- 调用API
-
管理API
- 管理API概述
- 查看或编辑APIG的API信息
- 配置API的自定义认证
- 配置API的参数编排规则
- 自定义API的错误响应信息
- 克隆APIG的API
- 下线APIG的API
- 导入导出API
-
APIG的API设计文件扩展定义
- x-apigateway-auth-type
- x-apigateway-request-type
- x-apigateway-match-mode
- x-apigateway-cors
- x-apigateway-is-send-fg-body-base64
- x-apigateway-any-method
- x-apigateway-backend
- x-apigateway-backend.parameters
- x-apigateway-backend.httpEndpoints
- x-apigateway-backend.httpVpcEndpoints
- x-apigateway-backend.functionEndpoints
- x-apigateway-backend.mockEndpoints
- x-apigateway-backend-policies
- x-apigateway-backend-policies.conditions
- x-apigateway-ratelimit
- x-apigateway-ratelimits
- x-apigateway-ratelimits.policy
- x-apigateway-ratelimits.policy.special
- x-apigateway-access-control
- x-apigateway-access-controls
- x-apigateway-access-controls.policy
- x-apigateway-plugins
- x-apigateway-auth-opt
- x-apigateway-result-normal-sample
- x-apigateway-result-failure-sample
- x-apigateway-authorizer
- x-apigateway-response
- x-apigateway-responses
- x-apigateway-pass-through
- x-apigateway-sample
- x-apigateway-content-type
- x-apigateway-orchestrations
- 配置API策略
- 配置凭据策略
- 管理APIG实例
- 查看监控指标与配置告警
- 查看APIG审计日志
- 共享版操作指导(仅存量用户使用)
- 最佳实践
- 开发指南
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
专享版API(V2)
- 专享版-API分组管理
- 专享版-环境管理
- 专享版-环境变量管理
- 专享版-流控策略管理
- 专享版-API管理
- 专享版-签名密钥管理
- 专享版-签名密钥绑定关系管理
- 专享版-API绑定流控策略
- 专享版-设置特殊流控
- 专享版-APP授权管理
- 专享版-概要查询
- 专享版-域名管理
- 专享版-ACL策略管理
- 专享版-API绑定ACL策略
- 专享版-自定义认证管理
- 专享版-OpenAPI接口
- 专享版-VPC通道管理
- 专享版-监控信息查询
- 专享版-分组自定义响应管理
- 专享版-标签管理
- 专享版-实例特性管理
- 专享版-配置管理
- 专享版-实例管理
- 专享版-实例终端节点管理
- 专享版-实例标签管理
- 专享版-微服务中心管理
- 专享版-SSL证书管理
- 专享版-插件管理
- 专享版-凭据管理
- 专享版-凭据配额管理
- 专享版-异步任务管理
- 专享版-编排规则管理
- 专享版-实例自定义入方向端口管理
- 共享版API(仅存量用户使用)
- 专享版API(V1)(待下线)
- 权限策略和授权项
- 附录
- 修订记录
- SDK参考
- 场景代码示例
-
常见问题
- 热门咨询
- 产品咨询
- 开放API
- 发布API
-
调用API
- 调用API失败的可能原因
- 调用API报“414 Request URI too large”
- 调用API报“The API does not exist or has not been published in the environment”
- 调用API报“No backend available”
- API的后端服务报“Backend unavailable”或“Backend timeout”
- API的后端服务报“Backend domain name resolution failed”
- 调用API报“Incorrect IAM authentication information”
- 调用API报“Incorrect app authentication information”
- 修改API后端服务的超时时间上限“backend_timeout”后未生效
- APIG对API请求体的大小是否有限制?
- API调用对请求的响应消息体限制
- 使用iOS系统时,如何使用APP认证调用API?
- 新建一个华为IAM认证方式的API,在配置入参时为什么无法配置HEADER位置的x-auth-token?
- 是否支持移动应用调用API?
- 部署在VPC下的应用是否可以调用API?
- APIG是否支持WebSocket数据传输?
- API的策略后端有多个时,怎么匹配和执行API请求?
- 如何通过APIG访问公网后端服务?
- API认证
- API策略
- 导入导出API
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
使用APIG专享版实现gRPC服务的路由转发实施步骤
前提条件
- 客户端与服务端均为gRPC类型。
- 服务端已定义proto文件,即在proto文件中定义API的Request和Response。proto文件是用于定义数据结构和服务接口的文件,通常在gRPC中使用,它基于Protobuf语言,用于描述数据的结构和交互方式,充当客户端和服务端之间通信的合同。
创建API
- 登录API网关控制台页面。
- 根据实际业务在左侧导航栏上方选择实例。
- 在左侧导航栏选择“API管理 > API列表”。
- 单击“创建API > 创建GRPC API”。更多详细指导,请参见创建GRPC API。
- 根据下表参数说明,配置前端信息。配置完成后,单击“下一步”。
表1 前端配置 参数
配置说明
API名称
填写API名称。
所属分组
API所属分组,此默认“DEFAULT”。
URL
- 请求方法:接口调用方式,默认“POST”。
- 请求协议:选择API请求协议,默认“GRPCS”。
- 子域名:API分组创建后,系统为分组自动分配一个内部测试用的调试域名,此调试域名每天最多可以访问1000次。
- 路径:接口请求路径。此处填写“/helloworld.Greeter”。请求路径请参考proto文件,helloworld为包名,Greeter服务名。
网关响应
API网关未能成功处理API请求,从而产生的错误响应。
默认的网关响应为“default”。
匹配模式
此处选择“前缀匹配”。
安全认证
选择API认证方式,此处选择“无认证”。(无认证模式,安全级别低,所有用户均可访问,不推荐在实际业务中使用)
- 根据下表参数说明,配置后端信息。配置完成后,单击“完成”。
表2 后端配置 参数
配置说明
负载通道
选择“不使用”负载通道访问后端服务。
URL
- 请求方法:接口调用方式,默认“POST”。
- 请求协议:选择协议类型,默认“GRPCS”。
- 后端服务地址:填写后端服务地址及端口。
- 路径:后端服务的路径。此处填写“/”。
发布API
- 在“API运行”页面,选择已创建的API,单击“发布最新版本”。
说明:
在“API运行”页面中,API的URL不显示调用方法以及协议,仅显示域名和路径部分。当发送gRPC请求时,填入域名部分即可。
- 选择API的发布环境,并填写发布说明。
- 单击“确定”,API发布成功后,发布按钮左上角的红色感叹号消失。
验证
使用接口测试工具调用已创建的API,或者在客户端调用已创建的API。
- 填写API所属分组的调试域名。
- 导入服务端的proto文件。
此处的proto文件如下:
syntax = "proto3"; package helloworld; // The greeting service definition. service Greeter { // Sends a greeting rpc SayHello (HelloRequest) returns (HelloReply) {} } // The request message containing the user's name. message HelloRequest { string name = 1; } // The response message containing the greetings message HelloReply { string message = 1; }
- helloworld:包名
- Greeter:服务名
- SayHello:方法名
- HelloRequest:请求体
- HelloReply:响应体
- 参考proto文件在“message”区域中填写API的Request。
{ "name": "world" }
- 单击“Invoke”发送请求。
- 在“Response”区域中返回API的Response,且状态码显示“0 OK”,表示调用成功。