提供一个使用封装好的API接口的示例

111 阅读5分钟

以下以使用一个虚构的获取天气信息的 API 接口为例,展示在 Python 语言中如何使用封装好的 API 接口,这里假设 API 接口基于 RESTful 风格,使用 requests 库来发起请求。

1. API 接口相关设定(模拟)

  • 接口地址https://taobao/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=652874751412&is_promotion=1 ,用于获取淘宝商品信息。
  • 请求方法:GET。
  • 请求参数:
  • 请求参数:num_iid=652874751412&is_promotion=1
  • 参数说明:num_iid:淘宝商品ID is_promotion:是否获取取促销价
  • 响应数据格式:

名称类型必须示例值描述
itemitem[]1宝贝详情数据
num_iidBigint1520813250866宝贝ID
titleString1三刃木折叠刀过安检创意迷你钥匙扣钥匙刀军刀随身多功能小刀包邮宝贝标题
desc_shortString0商品简介
promotion_priceInt0优惠价
priceFloat125.8价格(当商品价格为0时,当前值为-1),价格来自于未登入的划线价格,会有个别商品价格无法与页面匹配
total_priceFloat00
suggestive_priceFloat00
orginal_priceString025.80原价
nickString0欢乐购客栈掌柜昵称
numInt03836库存(没有精确,是模糊值)
min_numInt00最小购买数
detail_urlString0item.taobao.com/item.htm?id…宝贝链接
pic_urlString1//gd2.alicdn.com/imgextra/i4/2596264565/TB2p30elFXXXXXQXpXXXXXXXXXX_!!2596264565.jpg宝贝图片
brandString0三刃木品牌名称
brandIdInt08879363品牌ID
rootCatIdInt050013886顶级分类ID
cidInt150014822
crumbsMix0[]导航菜单
created_timeString0
modified_timeString0
delist_timeString0
descString0商品详情
desc_imgMix0[]商品详情图片
item_imgsMix0item_imgs[]商品图片
urlstring0//gd3.alicdn.com/imgextra/i4/2596264565/TB2p30elFXXXXXQXpXXXXXXXXXX_!!2596264565.jpg
item_weightString0
item_sizeString0
locationString0发货地
express_feeFloat00.00快递费用
ems_feeFloat0EMS费用
post_feeFloat0物流费用
shipping_toString0发货至
has_discountBoolean0false是否有优惠
videovideo[]0商品视频
picstring0img.alicdn.com/imgextra/i4…视频预览图
urlstring0//cloud.video.taobao.com/play/u/1795410438/p/1/e/1/t/8/218504165570.swf视频路径
typestring0item视频类型
is_virtualString0
is_promotionBoolean0false是否促销
props_nameString01627207:1347647754:颜色分类:长方形带开瓶器+送工具刀卡+链子;1627207:1347647753:颜色分类:椭圆形带开瓶器+送工具刀卡+链子;商品属性名。格式为pid1:vid1:name1:value1;pid1:vid2:name2:value2。
prop_imgsprop_imgs[]0商品属性图片列表
prop_imgprop_img[]0
propertiesstring01627207:1347647754
urlstring0//gd2.alicdn.com/imgextra/i3/2596264565/TB2.XeblVXXXXXkXpXXXXXXXXXX_!!2596264565.jpg
property_aliasString020509:9974422:36;1627207:28326:红色;20509:9975710:38;1627207:28326:红色;20509:9981357:40;1627207:28326:红色销售属性值别名。格式为pid1:vid1:alias1;pid1:vid2:alia2。
propsMix0[{ "name": "产地","value": "中国" }]商品属性
total_soldInt0
skusskus[]0商品规格信息列表
skusku[]0
pricestring039
total_pricestring0ul
orginal_pricestring039.00
propertiesstring01627207:1347647754",
properties_namestring01627207:1347647754:颜色分类:长方形带开瓶器+送工具刀卡+链子
quantitystring0305
sku_idstring0316659862598
seller_idInt02844096782卖家ID
salesInt0138销量
shop_idInt0151372205店铺ID
props_listMix0{20509:9974422: 尺码:36}商品属性
seller_infoseller_info[]1卖家信息
nickstring1欢乐购客栈
shop_typestring0
user_num_idBigint02596264565
sidBigint0127203758
titlestring0欢乐购客栈
zhuystring0//shop127203758.taobao.com
company_namestring0
tmallBoolean0false是否天猫
errorString0错误信息
warningString0警告信息
url_logMix0[]
favcountInt00
fanscountInt00
methodString0item_tmall:pget_item
promo_typeString0
props_imgMix01627207:28326": "//img.alicdn.com/imgextra/i2/2844096782/O1CN01VrjpXt1zyCc9DvERE_!!2844096782.jpg属性图片
shop_itemMix0[]
relate_itemsMix0[]

2. Python 代码示例

# coding:utf-8
"""
Compatible for python2.x and python3.x
requirement: pip install requests
"""
from __future__ import print_function
import requests
# 请求示例 url 默认请求参数已经做URL编码
url = "https://taobao/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=652874751412&is_promotion=1"
headers = {
    "Accept-Encoding": "gzip",
    "Connection": "close"
}
if __name__ == "__main__":
    r = requests.get(url, headers=headers)
    json_obj = r.json()
    print(json_obj)

在上述示例中:

  • 首先定义了 API 接口的地址 url 和请求参数 num id,将商品链接和对应的 API 身份验证 appid 填入(实际应用中要替换为真实有效的信息)。

  • 接着使用 requests 库的 get 方法向接口发起请求,根据返回的状态码判断请求是否成功。

  • 如果状态码为 0000,就通过 response.json() 解析返回的 JSON 格式数据,提取商品详情信息展示出来。

  • 若出现请求异常(比如网络问题、参数错误等导致请求失败),则捕获异常并打印相应的错误提示信息。

请注意,这只是一个示例,实际使用不同的 API 接口时,要严格按照对应接口的文档要求来设置请求参数、处理响应数据以及进行可能的身份认证等操作。