W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
推薦使用:PhalApi SDK for Ruby 。
將框架目錄下的 ./SDK/Ruby/PhalApiClient 目錄中的全部代碼拷貝到項目里面即可使用。
如下是使用的代碼場景片段。
首先,我們需要導(dǎo)入SDK包:
#demo.rb
require_relative './PhalApiClient/phalapi_client'
a_client = PhalApi::Client.create.withHost('http://demo.phalapi.net')
a_response = a_client.withService('Default.Index').withParams('username', 'dogstar').withTimeout(3000).request()
puts a_response.ret, a_response.data, a_response.msg
運行后,可以看到:
200
{"title"=>"Hello World!", "content"=>"dogstar您好,歡迎使用PhalApi!", "version"=>"1.2.1", "time"=>1445741092}
當(dāng)需要重復(fù)調(diào)用時,需要先進行 重置操作 ,如:
#one more time
a_response = a_client.reset \
.withService("User.GetBaseInfo") \
.withParams("user_id", "1") \
.request
puts a_response.ret, a_response.data, a_response.msg
當(dāng)請求有異常時,返回的 ret!= 200,如:
#illegal request
a_response = a_client.reset.withService('XXXX.noThisMethod').request
puts a_response.ret, a_response.data, a_response.msg
以上的輸出為:
--------------------
400
非法請求:接口服務(wù)XXXX.noThisMethod不存在
當(dāng)服務(wù)端接口需要接口簽名驗證,或者接口參數(shù)加密傳送,或者壓縮傳送時,可以實現(xiàn)此過濾器,以便和服務(wù)端操持一致。
當(dāng)需要擴展時,分兩步。首先,需要實現(xiàn)過濾器接口:
class MyFilter < PhalApi::ClientFilter
def filter(service, *params)
#TODO ...
end
}
然后設(shè)置過濾器:
a_response = PhalApi::Client.create.withHost('http://demo.phalapi.net') \
.withFilter(MyFilter.new) \
# ... \
.request
當(dāng)返回的接口結(jié)果不是JSON格式時,可以重新實現(xiàn)此接口。
當(dāng)需要擴展時,同樣分兩步。類似過濾器擴展,這里不再贅述。
最后,附一張單元測試運行的效果圖:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: