Flask-Web-API

Environment

  • windows 8
  • python 3.6
  • Visual Studio Code
  • Libray 請參考 requirements.txt

Summary

透過 Flask 快速搭建一個簡單的 web api

利用 FinMind 所提供的股價資料庫來建立 api,避免使用者直接對 DB 撈資料

讓 user 只要輸入資料名稱、股價代碼、時間即可獲取該資料

最後再透過 test.py 來測試 api 是否符合需求

RESTful API

HTTP 協定中,定義了多種不同的 method 做為服務的請求方法,常見如下五種:

GET: 取得服務的資料或是狀態。(safe & idempotent)
POST: 將原先沒有的資料去做一筆新增的動作
PUT: 利用更新的方式於"指定位置"新增一項資料,像是複製檔案貼上。 (idempotent)
PATCH: 在現有的資料欄位中,增加或部分更新一筆新的資料,就是一般常見的修改。
DELETE: 指定資料刪除。 (idempotent)
  • safe: 該操作不會改變原本的資源狀態,並且同樣的結果是可以被快取(Cache)的,EX: 訂單查詢
  • idempotent: 該操作不管做1遍、2遍或多遍,都會得到同樣的資源狀態結果
  • POST/PUT 都可以用來新增
  • PATCH/PUT 都可以用來修改

在 Http 的協定下,每一種呼叫方式都會有一種他專屬的特殊定義,也就是說不同的方法就是對同一件事情做不同的操作。

像是在開發 API 時,會透過一個 url 來進行讀取資料或上傳資料,而可以理解成每一個 url 是一個專屬服務的窗口

在開發 API 時沒有一定要照著上面的定義敘述建立,但如果你符合的話,你可以將它稱作 Restful API

REST 全名 Resource Representational State Transfer ,可譯為具象狀態傳輸,若是把各個單字拆開來解釋的話即如下:

  • Resource:資源
  • Representational:表現形式,如 JSON,XML ...
  • State Transfer:狀態變化。即上述講到的可利用 HTTP 動詞們來做呼叫

REST 指的是網路中 Client 端和 Server 端的一種呼叫服務形式,透過既定的規則,滿足約束條件和原則的應用程式設計,對資源的操作包括獲取、創建、修改和刪除資源,這些操作就是依照我們前面所提到的 HTTP Method: GET、POST、PUT、PATCH和DELETE。這正好會對應到資料庫基本操作 CRUD。

CRUD 為 Create(新增)、Read(讀取)、Update(更新)與Delete(刪除)的縮寫。

Swagger API 規範

Swagger 是由 Reverb technologies 公司,所開的 API 規範, 在 2015 年度被貢獻給 OpenAPI 成為標準規範

專案使用到 API 通常都要建立文件,透過 Swagger API 的方式可以快速建立文件,讓使用者清楚且快速地了解接受到的資料格式

Reference