
# 创建并启用Rest Action
通过创建Rest Action，使得系统可以调用第三方提供的Rest协议的接口，实现第三方提供的业务功能。
#### 前提条件
已获取第三方提供的Rest服务的URL地址、输入参数、输出参数、内容类型信息。
#### 场景描述
若需要调用第三方提供的Rest协议的flapRefund接口，则需要该Rest Service。
#### 操作步骤
1. 参考[登录经典应用设计器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_5025.html)中操作，登录经典版应用设计器。
2. 在左侧列表中，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001978938708.png)，选择"自定义连接器 \> 自定义连接器"。
3. 在Rest Service列表中，选择Rest Action所在的REST Service，选择"动作"页签，单击"新建"。
4. 设置动作的基本信息，单击"下一步"。
   
   - 标签：新建Rest Action的标签名。
   
   - 名称：Rest Action在系统中的唯一标识。
   
   - URL：第三方提供的，Rest协议服务的URL地址。
   
   - 方法：选择Rest的方法。
     - GET：获取资源。
     
     - POST：创建资源。
     
     - PUT：更新资源。
     
     - PATCH：用于更新资源的部分内容。
     
     - DELETE：删除资源。
     
     - OPTIONS：用于获取当前URL所支持的方法。
     
     
     方法选择"PUT"或"POST"时，可自定义输入消息体参数。当第三方入参为数组或非JSON类型时，需要在定义输入参数设置为"键-值"形式。勾选后系统会引入一个通用的入参变量"$in"，将数组或非JSON类型的变量存到"$in"中，变成"键-值"格式传入到Rest Action中。
     
   
   - 内容类型：输入内容的类型，该值取决于第三方支持哪种类型，是在HTTP标准协议中定义的。
   
   - 返回类型：取值为"application/json"时，表示会忽略第三方实际返回的"content-type"，使用第三方配置的"content-type"来解析第三方返回的内容。 如果该参数取值为空，表示使用http返回中的"content-type"，来解析第三方返回的内容。
     
   
   - 超时时间：当超出该参数设定的时间，第三方没有返回结果时，系统报错。
   
   - 日期格式：若该Rest服务输入参数包括Date类型且有固定的要求格式，则必须进行配置。 请确保AstroZero提供的输入参数，符合第三方要求。例如，该Rest服务存在Date类型输入参数，且要求格式为"YYYY-MM-DD"，则此处必须配置为"YYYY-MM-DD"。
     
   
   - 日期/时间格式：若该Rest服务输入参数包括DateTime类型且有固定的要求格式，则必须进行配置。 请确保AstroZero提供的输入参数，符合第三方要求。例如，该Rest服务存在DateTime类型输入参数，且要求格式为"YYYY-MM-DD hh:mm:ss"，则此处必须配置为"YYYY-MM-DD hh:mm:ss"。
     
   
   - 描述：Rest Action的描述信息。
   
   
   
   
5. 设置消息头入参，单击"下一步"。 
   若此接口没有消息头输入参数，则不需要配置参数，请删除第一行参数。若有消息头输入参数，且有多个，请单击"新增"。若之前创建Rest Service时，有定义消息头参数，可选择"从模板中插入"，并定义输入参数的基本信息。
   图1消息头入参配置页面   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960125913.png "点击放大")
   - 标签：消息头输入参数的标签名。
   
   - 名称：消息头输入参数在系统中的唯一标识。
   
   - 数据类型：消息头输入参数的数据类型。
     - 数字：数字类型。
     
     - 字符串：字符串类型。
     
     - 布尔值：布尔类型，取值为"true"和"false"。
     
     - 敏感文本：如姓名、手机号等。
      
   
   - 默认值：参数的默认取值。
   
   - 描述：消息头输入参数的描述信息。
   
   - 默认：参数是否有默认值。
   
   - 必填：参数是否必填。
   
   - 操作：单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932887188.png)或![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285721.png)，可对Header输入参数进行添加或删除操作。
   
   
   
   
6. 设置输入参数，单击"下一步"。 
   若此接口没有输入参数，则不需要配置参数，删除第一行参数。若有输入参数，且有多个，请单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960125925.png)，并定义输入参数的基本信息。
   页面上方"消息体格式"参数使用说明：当方法为"PUT"或"POST"时，该参数才会显示。当第三方入参为数组类型或者非JSON类型时，需要将"输入消息体方式"设置为"值"形式。
   例如，若设置"消息体格式"为"键-值"，假设定义了输入参数A、B、C，调用时消息体中传递了参数 {A: 1,B:2, C:3} ，此时被调用方收到的参数信息是 {A: 1,B:2, C:3}。若设置"输入消息体方式"为"值"，此时默认使用$in输入参数定义，调用时消息体中传递了参数{$in: \[1,2,3\] }，此时被调用方收到的参数信息为\[1,2,3\]。
   图2输入参数配置页面   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285741.png "点击放大")
   - 标签：输入参数的标签名。
   
   - 名称：输入参数在系统中的唯一标识。
   
   - 参数位置：设置输入参数的位置。
   
   - 数据类型：设置输入参数的数据类型。
     - 日期：日期类型，精度到天。
     
     - 日期/时间：时间类型，精度到秒。
     
     - 数字：数字类型。
     
     - 字符串：字符串类型。
     
     - 布尔值：布尔类型，取值为"true"和"false"。
     
     - 全局结构体
     
     - 键值对（Map）：Map集合类型。
     
     - 对象：对象标识类型。
     
     - 敏感文本：如姓名、手机号等。
      
   
   - 命名空间：输入参数所属的命名空间。
   
   - 元数据名称：选择元数据的名称。
   
   - 默认值：参数默认取值。
   
   - 描述：输入参数的描述信息。
   
   - 默认：参数是否有默认值。
   
   - 必填：输入参数是否为必填。
   
   - 集合：输入参数是否为数组型。
   
   - 操作：单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932887212.png)或![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046584.png "点击放大")，可添加或删除输入参数。
   
   
   
   
7. 设置输出参数，单击"保存"。 
   若此接口没有输出参数，则不需要配置参数，请删除第一行参数。若有输出参数，且有多个参数，请单击"+ 新增"，并定义输出参数的基本信息。
   页面上方"消息体格式"参数使用说明：设置"输出消息体方式"为"值"后，系统会引入一个通用的出参变量"$out"，将body的内容存到"$out"中，作为出参。
   例如，若设置"消息体格式"为"键-值"，假设定义了输出参数A、B、C，调用后返回消息体中传递了参数 {A: 1,B:2, C:3} ，此时调用方收到的参数信息是 {A: 1,B:2, C:3}；若设置"输出消息体方式"为"值"，此时默认使用$out输出参数定义，调用业务接口返回消息体中传递了参数\[1,2,3\]，此时调用方收到的参数信息为{$out:\[1,2,3\]}。
   图3输出参数配置页面   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285737.png "点击放大")
   - 标签：：设置输出参数的标签名。
   
   - 名称：输出参数在系统中的唯一标识。
   
   - 参数位置：设置输出参数的位置。
   
   - 数据类型：输出参数的数据类型。
   
   - 命名空间：输出参数所属的命名空间。
   
   - 元数据名称：设置元数据的名称。
   
   - 描述：输出参数的描述信息。
   
   - 集合：输出参数是否为数组型。
   
   - 操作：单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046608.png)或![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285733.png)，可添加或删除输出参数。
   
   
   
   
8. 在动作页签，单击该Rest Action所在行的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285709.png)，启用Rest Action。
   
   单击"导出"，可导出zip包，zip包中包括该服务的所有Rest接口。单击"导入"，可通过导入yaml文件，导入Rest Action。
   
   
 
