three layer
1.0.0
該軟件包的目的是成為現代的,生產級的電池,包括由Haskell在後端和Frontend上使用Haskell編寫Web服務器的啟動模板。它遵循三層蛋糕。架構模式。
這裡使用的Haskell庫:
relude :替代前奏;這裡使用了base-noprelude技巧。co-log :可綜合的違反共產黨記錄庫。postgresql-simple :數據庫交互的中級PostgreSQL客戶庫庫。servant :在類型級別上定義WebServices REST API的圖書館家族。elm-street :Elm和Haskell之間的橋樑 - 生成ELM數據類型,JSON編碼器和解碼器會自動從Haskell類型中。proto-lens :與移動應用程序集成的Protobuf消息。ekg :應用程序性能監控。bcrypt :密碼哈希功能。jwt :通過JWT的用戶身份驗證。hspec和hedgehog :測試庫。 本節包含對所選體系結構的更詳細描述以及我們對其的特殊實現。
Lib/App/Env.hs模塊中定義了整個應用程序的運行時環境的數據類型。它包含應用程序處理所需的各種字段,例如數據庫池,JWT Secret,Logger等。它還具有Custom的實例,該實例Has Typeclass,該實例講述瞭如何提取應用程序的不同部分。這樣做是為了實現以下目的:
環境初始化正在Lib.hs模塊中發生。
模塊Lib/App/Error.hs包含應用程序可能丟棄的所有錯誤的詳盡列表。該模塊在人類可讀的錯誤名稱和HTTP錯誤代碼之間提供了方便的層。它還包含有用的實用程序,用於拋出錯誤和格式化錯誤的CallStack 。
主要應用程序可以在Lib/App/Monad.hs模塊中找到。
該模板使用PostgreSQL數據庫,並包含圍繞postgresql-simple庫功能的輔助包裝器,以將其更加順暢地與我們自己的單調集成在一起。有關更多詳細信息,請參見Lib/Db/Functions.hs 。
所有新效果(例如發送電子郵件。存儲文件等)都應添加到Lib/Effects/目錄中。