日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

SOFARPC 客戶端接入

更新時間:

本文適用于訂閱方使用 SOFARPC 作為客戶端接入 API 網關。

前置條件

在進行本地訂閱方應用開發、接入網關前,需要確保已經完成以下操作:

  • 已在 API 網關控制臺創建了一個應用,參見 創建應用

  • 已將該應用的 APPID 提供給了 API 發布者,并獲得了授權,參見 授權 API

  • 已獲取了如下服務配置信息。具體獲取方法,參見 獲取服務端信息

    • 應用的訪問密鑰(Access Key/Secret Key)。

    • API 的域名地址(host)、接口名稱(interface)、方法(method)等。

操作步驟

跟進 API 后端服務系統協議類型的不同,SOFARPC 訂閱方接入步驟也有所不同。

SOFARPC/SOFAREST

在 API 的后端服務系統協議為 SOFARPC/SOFAREST 時,其網絡拓撲如下圖所示:

網絡拓撲

API 服務示例

假設服務端發布了如下 SOFARPC 或 SOFAREST 服務,且已在 API 網關控制臺上完成了相應 API 配置。

package com.alipay.gateway.serverdemo.service

public interface HelloService {
    public String sayHello();
}

API 調用示例

根據上述 API 服務示例,客戶端可以使用標準的 SOFARPC reference 編碼方式進行調用,只需添加幾個特殊的網關參數即可。

  1. application-properties 文件中,添加以下配置:

    說明

    若以下配置已經存在,請確認配置無誤。

    # 走網關尋址
    com.alipay.sofa.rpc.registries.gateway=gateway://${acvip}:80
  2. 引入服務端提供的 facade 包。

  3. 根據上文 前置條件 中獲取的 API 服務端信息,修改 reference 方式,示例如下:

    說明

    如果 API 開啟了密鑰認證,您還需要在工程中配置相應的 Access Key 和 Secret Key,推薦使用啟動參數和環境變量的形式。

    # 客戶端請求的ak、sk,就是應用的密鑰信息
    sub.app.access.key=<yourAccessKeyId>
    sub.app.secret.key=<yourAccessKeySecret>
    <sofa:reference jvm-first="false" id="helloService"
                    interface="com.alipay.gateway.serverdemo.service.HelloService">
      <sofa:binding.bolt>
        <sofa:global-attrs connect.timeout="10000" registry="gateway"/>
        <sofa:parameter key="gateway.host" value="eq1ejclxfgde****.cloud.58dev.alipay.net"/>
        <sofa:parameter key="gateway.ak" value="${sub.app.access.key}"/>
        <sofa:parameter key="gateway.sk" value="${sub.app.secret.key}"/>
      </sofa:binding.bolt>
    </sofa:reference>
  4. 調用 HelloService。

    public class Client {
    
    	@Autowire
        private HelloService helloService;
        
        // use helloService
    }

HTTP

在 API 的后端服務系統協議為 HTTP 時,其網絡拓撲如下圖所示:

HTTP

與 SOFARPC 和 SOFAREST 不同的是,一般 HTTP 服務的服務端不會提供 facade 包,但是使用 SOFARPC 調用需要一個 interface,所以客戶端需要自行構造這個 interface。

API 服務示例

假設服務端是一個 SpringMVC 接口,如下所示:

package com.alipay.gateway.serverdemo.controller

// 服務端提供一個 /hello/world 服務

@RestController
@RequestMapping("/hello")
public class SpringController {
    
    @RequestMapping("/world")
    public String Hello() {
    	return "world";
    }
}

API 服務提供者在 API 網關控制臺完成了相應的 API 配置,如下圖所示。

1

API 調用示例

根據上述 API 服務示例,服務提供者要求客戶端通過 com.alipay.gateway.client.service.xxxx.hello() 的方式來調用服務端提供的 HTTP 接口。

此時,客戶端需要按照如下步驟進行編碼配置:

  1. application-properties 文件中,添加以下配置:

    說明

    若以下配置已經存在,請確認配置無誤。

    # 走網關尋址
    com.alipay.sofa.rpc.registries.gateway=gateway://${acvip}:80
  2. 構造 interface,示例如下:

    package com.alipay.gateway.client.service
    
    // client 使用 HelloSpirngMVC.Hello 來訪問服務端的  /hello/world 服務
    public interface HelloSpirngMVC {
        String hello();
    }
  3. 根據上文 前置條件 中獲取的 API 服務端信息,修改 reference 方式,示例如下:

    說明

    如果 API 開啟了密鑰認證,您還需要在工程中配置相應的 Access Key 和 Secret Key,推薦使用啟動參數和環境變量的形式。

    # 客戶端請求的ak、sk,就是應用的密鑰信息
    gateway.accessKey=<yourAccessKeyId>
    gateway.secretKey=<yourAccessKeySecret>
    gateway.host=<yourHost>
    <sofa:reference jvm-first="false" id="helloSpirngMVC"
                    interface="com.alipay.gateway.client.service.HelloSpirngMVC">
      <sofa:binding.bolt>
        <sofa:global-attrs connect.timeout="10000" registry="gateway"/>
        <sofa:parameter key="gateway.host" value="eq1ejclxfgde****.cloud.58dev.alipay.net"/>
        <sofa:parameter key="gateway.ak" value="${sub.app.access.key}"/>
        <sofa:parameter key="gateway.sk" value="${sub.app.secret.key}"/>
      </sofa:binding.bolt>
    </sofa:reference>
  4. 調用 HelloSpringMVC。

    public class Client {
    
    	@Autowire
        private HelloSpirngMVC helloSpirngMVC;
        
        // use helloSpirngMVC
    }