題目待訂 API 探索之旅

Share This Post

API?

API (Application Programming Interface)究竟是什麼?

簡單來說你不需要理解程式內部是如何運作的,但只要透過 API 就可以輕鬆達成你要的結果。
但除了回復正確結果外,當碰到例外狀況,API也會在碰到問題時回應錯誤。

RESTful API?

表現層狀態轉換 (Representational State Transfer)

他算是一種設計風格並非標準,讓你的 API 更簡潔更好懂。

  1. Nouns:同樣的資源應該僅有一個唯一的識別位置。
  2. Verbs:對資源要做的動作。比如用 GET 取得文章內容、用 DELETE 刪除文章等等行為。
  3. Content Types:定義資料的格式。

一般 API:

獲得標籤GET    /getLabel
新增標籤POST   /createLabel
更新標籤PUT    /updateLabel/{id}
刪除標籤DELETE /deleteLabel/{id}

RESTful API:

獲得標籤GET     /label
新增標籤POST    /label
更新標籤PUT     /label/{id}
刪除標籤DELETE  /label/{id}

😈用了 GET, POST, PUT, DELETE 不等於 RESTful API😈

❌ 錯誤:

上傳文章POST /api/article/upload
刪除文章DELETE /api/article/remove

⭕ 正確:

上傳文章POST /api/article
刪除文章DELETE /api/article/{id}

❗ 不好的Query String示範:

刪除文章DELETE /api/article?id=1234567

有趣且免費的 API 分享

🌎NASA API

  • APOD (Astronomy Picture of the Day)
    APOD 是 NASA 很著名的一個網站,從 1995-06-15 開始每天都由不同的天文學家去介紹當日圖片的特別之處。
  • Mars Rover Photos
    此 API 提供火星探測器 好奇號(Curiosity)、機會號(Opportunity)、勇氣號(Spirit)所拍攝的相關圖片。

🐶Dog API
狗以及更多的狗,可以自己選品種呦!

🧙Trace.moe
丟一張圖片,幫你尋找這是哪個動畫的場景。

🏴REST Countries
查看各國家的詳細資料

👮JailBase API
關注美國逮捕的最新情況以及查犯人

🏛政府 OpenData
不有趣,只是因為我生在台灣。

Python Flask 實作回傳圖片 API

  1. 安裝 flask 套件
$ pip install Flask
  1. 創建 app.py,引入 Module 並做一個簡易的 Hello World
# app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello, World!"
  1. 啟動
$ flask run 

啊我就不想這樣設定

檔案命名建議使用環境設定去做修改(Windows 別用PowerShell下= =),而 port、host 則在 flask run 時加參數就好

# Windows
$ set FLASK_APP=iDontWantCallApp.py

# Linux or Mac
$ export FLASK_APP=iDontWantCallApp.py

# 改 port 或 host 以及重製
flask run --reload --debugger --host 0.0.0.0 --port 80

直接在想起動的 .py 追加 app.run(),並用 $python 指令執行,但不建議,因為Flask官方也說明這種方式會造成未預期的錯誤。

# iDontWantCallApp.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello, World!"

if __name__ == '__main__':
    app.run(host='0.0.0.0',port=80)

啊我就不想用這個靜態路徑

app = Flask(__name__, static_folder='what/i/want')

ngrok

  1. 註冊 & 登入
  2. 下載 ngrok
  3. 連接你的帳號 token
$ ngrok config add-authtoken <your token>
  1. 開始使用
    選擇要對外的 port(免費仔只能有一個)
$ ngrok http 80
  1. 關掉 (ctrl+c)
# 介面消失時
$ taskkill /f /im ngrok.exe

同場加映

無用網站大合輯

訂閱研究文章

Get updates and learn from the best

More To Explore

Scroll to Top

hurry up !

軟體工程師培訓

限時免費報名中

藉由與「真實世界軟體專案」相同的技術、工具與開發流程,化簡成與商業機密無關、門檻較低更容易上手的「模擬專案」,讓你有機會在職場前輩的陪伴下,完成真槍實彈的練習,動手解決真實的問題,快速累積個人的經驗與作品,而不只是「學習技術」而已。