標籤

FastAPI

處理 Cloud Run 上的 Error loading ASGI app. Could not import module "main".

前言

這兩天在寫之後工作坊需要用到的範例 linebot-gemini-summarize,結果遇到部屬上去有問題,以下快速筆記這次遇到的一些蠢事,往後需要更細心點才行🤣

繼續閱讀

透過 Vue + FastAPI 完成 LINE Login 一鍵式登入

前言

碰巧最近有個日文五十音消除遊戲的 Side Project 正在實作中,參考之前鐵人賽文章,實作上發現有些內容可能是年久失修,導致實作上不太順利,碰巧近期 LINE Login 的官方文件也有更新,並且搭配之前實作的範例是使用 (Screen-LINE-Bullets),來延伸 Side Project,以下就為各位介紹一下其中使用 LINE Login 的一些過程。

TL;DR

  • LINE Login 範例從 Flask 轉到 Vue+FastAPI
  • 前後端分離
    • 前端用兩個頁面清楚展示 LINE Login SSO 步驟
    • 後端兩個 API
      • 取得認證導向網址
      • 認證 JWT 中的使用者參數
      • 環境變數都放後端(較安全)
繼續閱讀

初見 FastAPI (From Flask to FastAPI)

前言

雖然現在網路越來越快,每個同步(Synchronize)的 request 處理速度都很快,但用非同步(Asynchronous)不僅可以同時處理較多 request,也不會被前面那個 request 拖時間導致後面排隊的 request 不用做事,各走各的路,出事自己負責(咦?),雖然非同步有其他也要探討的問題,但這裡就先不討論這個~

FastAPI 使用起來有什麼感覺呢?

  • 適用於 Python 3.6 (含)以上的版本
    • 3.6 為目前 line-bot-sdk-python 最多人使用的版本
  • 支援非同步,藉由 Asyncio
  • Pydantic 做型別檢查 (超讚)
  • 寫起來跟 Flask 很像,無痛上手
  • Production Ready,這很重要,若文件上沒這個使用要多注意,隨時可能會翻船?
  • 寫一個 API 自動建一個 Swagger 文件,API 文件一起達成!
    • 可以使用 OpenAPI generator 來產生套件給其他語言使用者介接
繼續閱讀