课程 18:应用程序接口(API)

学习目标

1. API基础

1.1 什么是API?

定义: API(Application Programming Interface)是应用程序编程接口,规定了不同软件组件之间如何交互。常见有:操作系统API、库API、Web API等。

1.2 API的作用

API的优势:
• 简化开发,隐藏实现细节
• 标准化交互,方便扩展和维护
• 促进代码复用和模块化

2. 常见API类型

2.1 库API

# 调用Python标准库API
import math
print(math.sqrt(16))
import random
print(random.randint(1, 10))

2.2 Web API

# 调用Web API(以requests库为例)
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
注意: 使用Web API通常需要联网,返回数据多为JSON格式。

3. API的调用方法与文档

3.1 标准库API调用

import os
print(os.getcwd())  # 获取当前工作目录
print(os.listdir('.'))  # 列出当前目录下的文件

3.2 查阅API文档

查文档技巧:
• 使用help()函数
• 查看官方文档或第三方文档网站
• 阅读函数的参数、返回值、异常说明
help(math.sqrt)
help(requests.get)

4. 自定义API设计与调用

4.1 设计自定义API(函数)

def add(a, b):
    """返回a和b的和"""
    return a + b
print(add(3, 5))

4.2 参数与返回值

def greet(name, lang='zh'):
    if lang == 'zh':
        return f"你好, {name}!"
    else:
        return f"Hello, {name}!"
print(greet('Alice'))
print(greet('Bob', lang='en'))
注意: 设计API时要写好文档字符串(docstring),明确参数类型和返回值。

5. API的实际应用案例

5.1 数据获取与处理

# 获取天气数据(伪代码,需替换为真实API)
import requests
url = 'https://api.example.com/weather?city=Beijing'
response = requests.get(url)
if response.status_code == 200:
    data = response.json()
    print(data)
else:
    print('获取失败')

5.2 第三方API集成

# 使用百度翻译API(伪代码,需注册API Key)
import requests
url = 'https://fanyi.baidu.com/api/trans/vip/translate'
params = {'q': 'hello', 'from': 'en', 'to': 'zh', 'appid': '你的appid', 'salt': '随机数', 'sign': '签名'}
response = requests.get(url, params=params)
print(response.json())

6. 常见错误与调试

try:
    response = requests.get('https://api.github.com/unknown')
    response.raise_for_status()
except requests.RequestException as e:
    print('请求失败:', e)

7. 编程练习与挑战

练习1:基础操作

练习2:进阶技巧

练习3:实战项目

8. 综合作业与项目

作业18:API综合应用

任务1:API数据采集与分析

实现一个程序,定时采集某个公开API的数据(如天气、新闻、汇率),并进行简单分析和可视化。

任务2:自定义API设计与文档

设计一个自定义API(如学生信息管理),写好文档字符串,支持增删查改,并编写调用示例。

任务3:API集成项目

实现一个小型应用,集成多个API(如天气+翻译+定时提醒),提升综合能力。

学习建议:API是现代编程的重要基础,建议多查文档、多实践,遇到问题要学会调试和查阅官方资料。推荐多用help()、官方文档、第三方文档网站辅助学习。
思考题:API的设计有哪些最佳实践?如何保证API的安全性和稳定性?在实际开发中,如何高效集成和管理多个API?