小程序網絡請求轉發服務
該接口用于(yú)小程序中進行業務數據前後端交互 。
由于(yú)小程序是(shì)在(zài)宿主App中的(de)一(yī / yì /yí)個(gè)模塊, 小程序中網絡請求需要(yào / yāo)經過宿主App和(hé / huò)宿主App後端服務進行請求轉發,以(yǐ)實現App對小程序管控能力。 使用該接口的(de)必須要(yào / yāo)先在(zài)小程序管理平台配置可訪問的(de)接口或者域名, 配置後才可訪問成功,不(bù)在(zài)白名單中的(de)域名或者api是(shì)無法通過小程序進行業務數據請求。
接口說(shuō)明
接口名稱:httpProxy
Dubbo調用:msHttpProxyService
接口描述:小程序網絡請求轉發服務。
入參
header通用參數
業務參數
字段名稱 | 字段類型 | 字段描述 | 是(shì)否必須 |
---|---|---|---|
api | String | 轉發請求api, 該api必須通過進行轉發請求白名單配置 | 是(shì) |
data | Object | 請求參數 | 否 |
method | String | 請求轉發方式,POST, GET | 是(shì) |
dataType | String | text,隻支持text方式 | 否 |
encrypted | String | 加密方式, 暫無業務需要(yào / yāo) | 否 |
responseType | String | 返回格式, json/text, 根據請求網站返回數據,請求網站header中Content-Type如果是(shì)application/json, 返回數據是(shì)json,其他(tā)都是(shì)string | 否 |
miniAppCode | String | 小程序碼 | 是(shì) |
出(chū)參
字段名稱 | 字段類型 | 字段描述 | 是(shì)否必須 |
---|---|---|---|
response | Object | 返回數據 | 是(shì) |
code | String | AAAAAA, 成功,其他(tā) 錯誤 | 是(shì) |
msg | String | 是(shì) |
response
字段名稱 | 字段類型 | 字段描述 | 是(shì)否必須 |
---|---|---|---|
statusCode | int | 标準http狀态碼, 200請求成功 | 是(shì) |
returnCode | Object | 後台請求狀态對象 | 否 |
data | Object | 請求數據 | 是(shì) |
header | Object | 請求header | 是(shì) |
樣例
dubbo協議接入:
請求url
http://localhost:9102/gw/hk_e_app/msHttpProxyService.do
請求數據格式:
{
"request":{
"header": {
"appId": "3",
"appVersion": "1.0",
"ffVersion": "4.0",
"transId": "httpProxy",
"appExt": "1",
"custType": "100",
"signedMicroFlag": "0",
"net": {
"ip": "127.0.0.1",
"netType": "WIFI_oa-test",
"isp": "中国移動",
"ssid": "oa-test",
"lac": "4203",
"cid": "10732931"
},
"device": {
"osType": "03",
"osVersion": "8.0.0",
"brand": "samsung",
"model": "SM-G9500",
"uuid": "2e2bc2402301ea3e1e021362dd6b7a1e",
"imei": "357052091333047",
"mac": "00:9D:6B:32:00:24",
"nfc": "1",
"isRoot": "0",
"imsi": "8986003915187a258429"
},
"reqSeq": "0"
},
"body": {
"api":"http://127.0.01:8080/gw/hk_e_web/ShowMainBoard.do",
"method":"POST",
"data":{
},
"header":{
},
"responseType":"text",
"encrypted":"false",
"miniAppCode": "qHwgaSkXKx6tO4jc"
}
}
}
http協議接入:
請求url:http://localhost:8080/ffpaas/miniapp/httpProxy.json
請求數據格式:
{
"request":{
"header": {
"appId": "3",
"appVersion": "1.0",
"ffVersion": "4.0",
"transId": "httpProxy",
"appExt": "1",
"custType": "100",
"signedMicroFlag": "0",
"net": {
"ip": "127.0.0.1",
"netType": "WIFI_oa-test",
"isp": "中国移動",
"ssid": "oa-test",
"lac": "4203",
"cid": "10732931"
},
"device": {
"osType": "03",
"osVersion": "8.0.0",
"brand": "samsung",
"model": "SM-G9500",
"uuid": "2e2bc2402301ea3e1e021362dd6b7a1e",
"imei": "357052091333047",
"mac": "00:9D:6B:32:00:24",
"nfc": "1",
"isRoot": "0",
"imsi": "8986003915187a258429"
},
"reqSeq": "0"
},
"body": {
"api":"http://127.0.01:8080/gw/hk_e_web/ShowMainBoard.do",
"method":"POST",
"data":{
},
"header":{
},
"responseType":"text",
"encrypted":"false",
"miniAppCode": "qHwgaSkXKx6tO4jc"
}
}
}
dsdl配置
節點配置
msHttpProxyService$applicationName,true
說(shuō)明:
applicationName修改爲(wéi / wèi)應用
xml參數配置
- 創建節點,節點名稱爲(wéi / wèi)
interface-mapping
- 添加配置參數信息,如下
<?xml version="1.0" encoding="UTF-8"?>
<interface name="msHttpProxyService" description="http代理服務" auth="false">
<configs>
<config key="accessLog" value="false"/>
<config key="transDataRecordMode" value="on"/>
<config key="productId" value="ECommon"/>
</configs>
<input>
<param name="api" description="請求地(dì / de)址" type="String" optional="false"/>
<param name="method" description="請求方式" type="String" optional="false"/>
<param name="data" description="數據" type="Map" optional="true"/>
<param name="header" description="header" type="Map" optional="true"/>
<param name="responseType" description="響應數據類型" type="String" optional="true"/>
<param name="encrypted" description="是(shì)否加密" type="String" optional="true"/>
<param name="miniAppCode" description="miniAppCode" type="String" optional="true"/>
</input>
<output>
<param name="returnCode" description="處理結果" type="Map" optional="false">
<param name="code" description="返回碼" type="String" optional="false"/>
<param name="message" description="返回信息" type="String"/>
<param name="type" description="處理結果類型" type="String" optional="false"/>
</param>
<param name="data" type="Object"/>
<param name="statusCode" type="int"/>
<param name="header" type="Map"/>
</output>
</interface>