API开发与调用
理解RESTful API,学会调用和开发API
调用API
import requests
# GET请求
response = requests.get("https://api.github.com/users/octocat")
data = response.json()
print(data["name"], data["public_repos"])
# POST请求
response = requests.post(
"https://httpbin.org/post",
json={"name": "张三", "age": 25}
)
print(response.json())
# 带headers
headers = {"Authorization": "Bearer your_token"}
response = requests.get("https://api.example.com/data", headers=headers)
开发RESTful API
from flask import Flask, jsonify, request
app = Flask(__name__)
users = [
{"id": 1, "name": "张三", "age": 25},
{"id": 2, "name": "李四", "age": 30}
]
# 获取所有用户
@app.route("/api/users", methods=["GET"])
def get_users():
return jsonify(users)
# 获取单个用户
@app.route("/api/users/<int:user_id>", methods=["GET"])
def get_user(user_id):
user = next((u for u in users if u["id"] == user_id), None)
if user:
return jsonify(user)
return jsonify({"error": "Not found"}), 404
# 创建用户
@app.route("/api/users", methods=["POST"])
def create_user():
data = request.json
new_user = {
"id": len(users) + 1,
"name": data["name"],
"age": data["age"]
}
users.append(new_user)
return jsonify(new_user), 201
# 更新用户
@app.route("/api/users/<int:user_id>", methods=["PUT"])
def update_user(user_id):
user = next((u for u in users if u["id"] == user_id), None)
if user:
data = request.json
user.update(data)
return jsonify(user)
return jsonify({"error": "Not found"}), 404
# 删除用户
@app.route("/api/users/<int:user_id>", methods=["DELETE"])
def delete_user(user_id):
global users
users = [u for u in users if u["id"] != user_id]
return "", 204
if __name__ == "__main__":
app.run(debug=True)
本章小结
- REST:资源导向的API设计风格
- HTTP方法:GET/POST/PUT/DELETE
- JSON:API数据格式
- 状态码:200/201/404/500
→ 继续阅读:34-自动化脚本实战