文章彙整

Python- 測試API

By Astral Web 9 months agoNo Comments
首頁  /  Magento  /  Magento開發  /  Python- 測試API

當我們在開發Magento或是各種web程式時,常常會需要串接API,但在使用前必需要做的當然就是要先來測試我們要串接的API是不是正常啦~但測試時常常會碰到各種問題(eg. 尤其cross domain但document卻又沒清楚的說明時)實在會讓人很想要大喊:我只不過想簡單測試個API啊啊啊。

 

OK,這邊就讓歐斯瑞來跟大家介紹用Python來測試API範例吧,由於Pyhton也是屬於直譯動態語言,只要裝好python以及IDE就可以實作,並於IDE上直接執行就可顯示出結果,乾乾脆脆。

基於以上,無論對於測試或是學習上或是臨時要使用沒有php開發環境的電腦來測試時,都是簡單又方便呢~

不囉唆,讓我們開始吧!

 

Python及IDE:

 

{PS.若你都已Python與IDE但不清楚版本的話,請在python console中輸入:

import sys

print (sys.version)

就會顯示出版本囉!

以下我們是使用Ubuntu環境來教學,而python是使用3.6,IDE是使用PyCharm(有免費版可使用)。

 

import library套件以及建立post function

Python擁有各式各樣的library套件,在這邊我們使用到的是requests這個library來實作POST.

在python中要引用library只要在最前面放上import就好:

import requests

我們可以直接先執行看看若沒有此library話可以參考這篇: Python-基本用法之library安裝

 

再來我們就直接來建立post to api的方法囉~

在python中建立function是使用def語法來建立,而post的語法基本上會需要的就是url, headers以及最重要的data這幾個參數啦。

def posttoapi(url, data, headers={'Content-type': 'application/json', 'Accept': 'text/plain'}):

   response = requests.post(url, data=data, headers=headers)

   print(response.text)

   print(response.status_code)

 

 

由於Python是物件導向所以我們只要import requests後於requests加上”.”能呼叫其中的方法,而POST很直覺的就是

requests.post

 

而以下兩個分別是取出API回傳值及http status code

response.text

response.status_code

這時基本上只要再傳入參數給 posttoapi就好囉!

 

建立傳入參數及執行

 

由於客戶使用到的有md5 timestamp等等需求,並且是使用json格式來傳送data

這邊我們多import了幾個library

import hashlib

import time

import json

 

 

並建立我們需要的參數

PlateformKey = "testPlate"
TimeStamp = str(int(time.time())) #
Account = "glenntest”
data = {"AccessKey": md5(Account+TimeStamp+Plateform),
            "Plateform": Plateform,
            "TimeStamp": TimeStamp,
            "Account": "glenn134local"
        }
apiurl ="http://testdomain/CheckAccount
jsondata= json.dumps(data)

最後就是把參數丟入 posttoapi執行囉~

而通常python我們code裡面會使用

__name__

這一個magic method來決定function的執行與否
當你是直接執行這隻.py檔時 __name__的值會等於“__main__”
如果你是其他的python scritp import這隻.py時__name__的值會等於執行import的那一隻檔案
善用這小技巧可以很方便的決定你script中的哪一些function要在什麼情況下執行唷~

if __name__ == "__main__":

   print(apiurl)

   posttoapi(apiurl, jsondata)ps(data)

 

執行結果:

[{"ReturnCode":"-2","ReturnMessage":"您輸入的帳號已註冊"}]
200

PyCharm下方的Python Console就顯示出我們的結果啦~~

 

現在就快一起建立你自己的api testing tool吧~

 

以上內容由Astralweb 歐斯瑞編寫製作

 000

推薦文章

Category:
  Magento開發

留下回應

你的電子郵件地址不會被公開.

取得獨家電子商務祕技

建立更好的策略靈感

跟上全球的網路趨勢

絕佳的電商解決方案

電子商務戰略全指南

每月發送電商戰略指南,只要填寫E-mail即可訂閱!

請到您的信箱確認,即可完成訂閱。