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/目录中。