HTTP 接口響應數據解析


轉自:https://blog.csdn.net/hubanbei2010/article/details/79878567

作為產品線的支撐角色QA/CI/CD等,http api解析是互聯網公司中最常見的工作。

接口訪問,返回的數據一般是json格式。

常見場景:對json格式數據的解析,取某個字段的值,做相應的判斷。

任務:

假設剛部署出來的site的域名url為 https://qa-ultra-rds-96x.bbpd.io,現在檢驗version字段是否與預期相符。

與開發同學溝通,得知version信息可以通過訪問api(/ultra/api/v1/buildinfo)獲取到。

響應的數據為:

{
  "name": "ultra",
  "version": "3400.3.0",
  "branch": "develop",
  "commit": "a8ccaeb2b1c6094d598932219bb32cf9fe0380",
  "timestamp": "1523024279567",
  "date": "2018-04-06_14-17-59",
  "buildNumber": "3033",
  "buildName": "ultra/ultra-ui/develop",
  "buildType": "webpack",
  "buildVersion": "3400.3.0-ci.3033+a8ccaeb2",
  "ultraVersion": "2018-04-06_09-38-20",
  "learnVersion": "3400.3.0-ci.2927+b960272",
  "webServerVersion": "2.0.16",
  "config": {
    "mode": "production",
    "uiVersioningEnabled": true,
    "staticAssetsDomain": "d2aqwpvls1cndj.cloudfront.net",
    "learnVersionMapping": [
      {
        "from": "0.0.0.0",
        "uiVersion": "2018-04-06_09-38-20"
      }
    ]
  }
}

SHELL腳本實現:

curl -s --insecure https://qa-ultra-rds-96x.bbpd.io/ultra/api/v1/buildinfo|grep ' "ultraVersion"'|awk -F '"' '{print $4}'

PYTHON腳本實現:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
import json
import requests

def get_ultra_ui_version(base_url):
version_url = base_url + '/ultra/api/v1/buildinfo'

try:
res = requests.get(version_url)
print('respons status is %d' % res.status_code)
ultraVersion = json.loads(res.text)['ultraVersion']
print(type(ultraVersion))
except Exception as ex:
print('call api is failed and error message is :%s' % str(ex))
print(ultraVersion)
return ultraVersion 


if len(sys.argv) >=2:
base_url = sys.argv[1]
else:
print('parameters are missing')
sys.exit()


get_ultra_ui_version(base_url)

 

總結:

對比一下,
發現不需要登錄狀態下,且只需要獲取簡單信息,不需要后續處理,api的訪問使用shell比python要簡單的多。

如果涉及登錄,可以借用python的requests庫,可以實現較復雜的認證功能。且使用python庫可以實現多請求的連續訪問,多次請求之間有session的依賴關系。保持底層session不中斷,可以減少建立tcp連接的次數,支持高並發。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM