[Golang][LINE Bot SDK] 如何更新 Golang LINE Bot SDK v8 OpenAPI(Swagger)
前情提要: 2023 年 LINE Bot SDK 積極推動 OpenAPI (a.k.a. swagger) 的標準介面。透過與 OpenAPI 的整合, LINE Bot SDK 有了許多好處(文章後半段補充)。本篇文章將稍微解釋一下,OpenAPI 導入後的優點,並且帶著大家一起來將有使用 LINE Bot Go SDK v7 版本的升級到 v8 的版本。 本次的程式碼,會用前幾篇文章提到的: https://github.com/kkdai/linebot-gemini-pro 作為範例。 支援 OpenAPI 的好處 LINE Bot Go SDK 近期也在 2023/11 月也將版號更新到了 v8,並且正式支援 OpenAPI。 那麼簡單的來說,一個 SDK 套件支援 OpenAPI 有哪些好處呢? 1. 標準化的 API 設計 許多 API 呼叫的方式,變得更加的直觀。也比較容易了解。後面也會稍微提到。 2. 程式碼自動生成 以往要開發新的 API Entry 的時候,都要透過發送 issue -> 發送 PR -> 審核 -> 發布後才能發送到開發者手中。 但是導入後, LINE Bot SDK 使用的方式,是透過 Github Action 來自動去將最新的 LINE OPENAPI Repo抓下來後,根據新的變動產生相關的對應程式碼。 (參考上圖)(參考 Code Generator 產生的commit) 更多好處: 自動化文件生成:有許多相關文件可以幫忙自動化產生 OpenAPI 的文件。 客戶端與服務端驗證:透過 OpenAPI 的導入可以達成自動化測試與 Consumer-Driven Contract 的驗證。 API 生態系統工具的整合等等 開始 Migrate LINE Bot Go SDK from v7 to v8 先修改套件版本 v7 -> v8 先加入以下三個套件,接下來會解釋一下: "github.com/line/line-bot-sdk-go/v8/linebot" "github.com/line/line-bot-sdk-go/v8/linebot/messaging_api" "github.com/line/line-bot-sdk-go/v8/linebot/webhook" linebot: 主要處理 v7 相關的內容,儘量不要使用。會逐步 deprecated 。 messaging_api : 發送訊息用。 webhook: 接受訊息與處理相關 event 用的。 接下來將慢慢整合,並且開始說明相關套件使用到的部分。 開始整合,並且說明相關變動之處: “github.com/line/line-bot-sdk-go/v8/linebot/webhook” 負責接受 Webhook 相關資料,裡面包括兩大系列: MessageEvent 要處理相關訊息 Webhook 包括: TextMessageContent: 文字訊息。 StickerMessageContent: 貼圖訊息 .. ImageMessageContent: 圖片訊息,由使用者上傳的相片或是圖片訊息。 其他相關 Event 處理,包括: FollowEvent: 有新的好友。 PostbackEvent: 這個比較常用,就是透過 postback...
繼續閱讀