0
我的應用程序被定義爲:如何從snaplet查詢數據庫
data App = App { _api :: Snaplet Api, _db :: Snaplet Postgres }
makeLenses ''App
instance HasPostgres (Handler b App) where
getPostgresState = with db get
setLocalPostgresState s = local (set (db . snapletValue) s)
其中_api
是我創建一個snaplet。它被定義爲:
data Api = Api
我現在想用Api
snaplet內query_
功能。我可以這樣做的唯一方法是將Api
定義爲data Api = Api { _db :: Snaplet Postgres }
,但似乎這會初始化兩次postgres snaplet,我認爲這不對。我不知道如何從'父'App
獲得_db
。
我在正確的道路上嗎?訪問Api
snaplet數據庫的正確方法是什麼?
主要原因是從'/ api/...'URL提供API。有沒有更好的方法來做到這一點? – zoran119
'dir「api」apiHandler'(http://hackage.haskell.org/package/snap-core-1.0.0.0/docs/Snap-Core.html#v:dir) – mightybyte
或者,[路由功能] (http://hackage.haskell.org/package/snap-core-1.0.0.0/docs/Snap-Core.html#v:route)...'route [(「api」,apiHandler),...其他路線......]' – mightybyte