← 課程總覽

🔌 第9堂課:API 開發入門

程式學習第九堂課:REST API 概念、Flask 框架、CRUD 待辦事項 API、schedule 自動化排程
含語音講解(約 60 分鐘),附互動小測驗

📖 第一階段:REST API(約 20 分鐘)

1. 什麼是 API?

⏱ 10 分鐘

API 就是兩個程式之間的溝通介面。REST API 用 HTTP 方法表達操作:

GET    /api/todos      → 取得所有
POST   /api/todos      → 新增
PUT    /api/todos/3    → 更新第 3 筆
DELETE /api/todos/3    → 刪除第 3 筆

2. Flask 快速上手

⏱ 15 分鐘
# pip install flask
from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route("/api/hello")
def hello():
    name = request.args.get("name", "陌生人")
    return jsonify({"greeting": f"哈囉,{name}!"})

@app.route("/api/echo", methods=["POST"])
def echo():
    data = request.get_json()
    return jsonify({"你傳送了": data})

if __name__ == "__main__":
    app.run(debug=True, port=5000)

📖 第二階段:完整 CRUD(約 25 分鐘)

3. 待辦事項 API

⏱ 20 分鐘
from flask import Flask, jsonify, request, abort

app = Flask(__name__)
todos = []; next_id = 1

@app.route("/api/todos", methods=["GET"])
def get_todos():
    return jsonify(todos)

@app.route("/api/todos", methods=["POST"])
def create_todo():
    global next_id
    data = request.get_json()
    todo = {"id": next_id, "title": data["title"], "done": False}
    next_id += 1; todos.append(todo)
    return jsonify(todo), 201

@app.route("/api/todos/", methods=["DELETE"])
def delete_todo(todo_id):
    global todos
    todos = [t for t in todos if t["id"] != todo_id]
    return jsonify({"message": "已刪除"})

📖 第三階段:自動化(約 15 分鐘)

4. 自動化排程

⏱ 10 分鐘
# pip install schedule
import schedule, time

def daily_task():
    print("執行每日任務...")

schedule.every().day.at("09:00").do(daily_task)

while True:
    schedule.run_pending()
    time.sleep(30)
🚀 你現在可以:建立 API → 用戶透過網路存取 → 自動化排程背景執行。

🧪 小測驗:你學會了嗎?

5 題選擇題,選完按「交卷」看成績
第 1 / 5 題
REST API 中 GET 方法用來做什麼?
第 2 / 5 題
Flask 中 @app.route 是什麼?
第 3 / 5 題
jsonify() 的作用?
第 4 / 5 題
CRUD 代表哪四個操作?
第 5 / 5 題
schedule.every().day.at() 做什麼?
你的得分
0/5

🎯 第9堂課,你學會了什麼?

REST APIFlask完整 CRUD自動化排程

你現在可以建立自己的後端服務了——API 是現代軟體的骨架。

→ 前往第10堂課