##上一種說法,由golang 所寫的 API 簡單且通用。但實際上,我遇到很多 REST API 的程式碼,非常多的抽象,使得程式碼庫變得混亂和複雜,最終傷害了可讀性和可維護性。
這一系列,我們將透過如何建立一個產品級的REST API TODO 列表,一個可持續擴展架構,從路由和程式碼介面開始,然後添加一個mongo 的資料庫和一個badger 資料層,然後是授權協定層(OAuth 2.0)
在這一系列我們將使用chi 路由。
嗯,其實選擇用什麼並不重要。無論你使用什麼來進行路由,本系列中討論的概念都將是有用的。但有下面的這些優點可以讓我認為Chi-router 比大多數替代方案更優越:
#和net/http
標準庫100% 相容-- -可在Go 生態系中使用任何與net / http 相容的http 或中介軟體pkg
專為模組化/可組合API 設計- 中介軟體,內嵌中間件,路由群組和子路由器安裝
沒有外部依賴---純粹的就是Go 1.7 stdlib net / http
強悍 --- 有很多公司正在使用,例如:Pressly,CloudFlare,Heroku,99Designs
#輕量級 --- cloc'd in ~1000 LOC for the chi router
速度很快
我最喜歡的是,你為其他net / http 相容路由器編寫的舊的http 處理程序和中間件也可以正常運作。
首先,我們建立一個 main.go 。我們程式的基礎(或中心元件?)
r.Mount("/api/todo", todo.Routes())
router.Route("/v1", .... )
筆者(基於 Ajinkya 在評論中提到的問題,我會更多的闡述 walk 方法):
chi 路由有一個方法叫做 walk。這個方法接收的參數:
A router
#A callback.
接下來我們建立一個 todo 套件,它實際上保存了我們 todo 邏輯。
注意事項
這樣會很容易在套件裡找到.
##處理程序有在我們本系列的下篇文章中, 我們會繼續對配置和共享狀態的支援。大多數項目通常需要額外的配置,例如資料庫連接,等等。我們將會在下篇文章中討論這個。
推薦教學:《Go教學》
以上是優雅的實作 Golang REST API 架構的詳細內容。更多資訊請關注PHP中文網其他相關文章!