
# 使用APIG专享版实现gRPC服务的路由转发实施步骤
#### 前提条件
- 客户端与服务端均为gRPC类型。
- 服务端已定义proto文件，即在proto文件中定义API的Request和Response。proto文件是用于定义数据结构和服务接口的文件，通常在gRPC中使用，它基于Protobuf语言，用于描述数据的结构和交互方式，充当客户端和服务端之间通信的合同。
 
 #### 创建API
1. 登录[API网关控制台](https://console.huaweicloud.com/apig2/#/overview)。
2. 根据实际业务在左侧导航栏上方选择实例。
3. 在左侧导航栏选择"API管理 \> API列表"。
4. 单击"创建API \> 创建GRPC API"。更多详细指导，请参见[创建GRPC API](https://support.huaweicloud.com/usermanual-apig/apig_03_0078.html)。
5. 根据下表参数说明，配置前端信息。配置完成后，单击"下一步"。 
   表1前端配置 
   | 参数    | 配置说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|
   | API名称 | 填写API名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 所属分组  | API所属分组，此处默认"DEFAULT"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | URL   | - 请求方法：接口调用方式，默认"POST"。  - 请求协议：选择API请求协议，默认"GRPCS"。  - 子域名：API分组创建后，系统为分组自动分配一个内部测试用的调试域名，此调试域名每天最多可以访问1000次。  - 路径：接口请求路径。此处填写"/helloworld.Greeter"。请求路径请参考[proto文件]，helloworld为包名，Greeter为服务名。   |
   | 网关响应  | API网关未能成功处理API请求，从而产生的错误响应。 默认的网关响应为"default"。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 匹配模式  | 此处选择"前缀匹配"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 安全认证  | 选择API认证方式，此处选择"无认证"。（无认证模式，安全级别低，所有用户均可访问，不推荐在实际业务中使用）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
      
   
   
6. 根据下表参数说明，配置后端信息。配置完成后，单击"完成"。 
   表2后端配置 
   | 参数   | 配置说明                                                                                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|
   | 负载通道 | 选择"不使用"负载通道访问后端服务。                                                                                                                                                                                                                                                                                                                                                                                    |
   | URL  | - 请求方法：接口调用方式，默认"POST"。  - 请求协议：选择协议类型，默认"GRPCS"。  - 后端服务地址：填写后端服务地址及端口。  - 路径：后端服务的路径。此处填写"/"。   |
      
   
   
 
 #### 发布API
1. 在"API运行"页面，选择已创建的API，单击"发布最新版本"。 
   ![](https://support.huaweicloud.com/bestpractice-apig/public_sys-resources/note_3.0-zh-cn.png)
   在"API运行"页面中，API的URL不显示调用方法以及协议，仅显示域名和路径部分。当发送gRPC请求时，填入域名部分即可。
   ![](https://support.huaweicloud.com/bestpractice-apig/zh-cn_image_0000002183142921.png)
   
   
2. 选择API的发布环境，并填写发布说明。
3. 单击"确定"，API发布成功后，发布按钮左上角的红色感叹号消失。
 
 #### 验证
使用接口测试工具调用已创建的API，或者在客户端调用已创建的API。
![](https://support.huaweicloud.com/bestpractice-apig/zh-cn_image_0000002073262484.png "点击放大")
1. 填写API所属分组的调试域名。
2. 导入服务端的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：响应体
   
   
   
   
3. 参考proto文件在"message"区域中填写API的Request。 
   ```
   {
       "name": "world"
   }
   ```
   
   
4. 单击"Invoke"发送请求。
5. 在"Response"区域中返回API的Response，且状态码显示"0 OK"，表示调用成功。
 
