私のアプリケーションは次のように定義されます_api
は私が作成していsnapletあるどう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内query_
機能を使用したい
data Api = Api
:次のように定義されます。私がそうすることができる唯一の方法は、Api
をdata Api = Api { _db :: Snaplet Postgres }
と定義することですが、これはpostgresのスナップショットを2回初期化すると思われますが、これは正しいとは思いません。私は_db
を '親' App
から取得する方法がわかりません。
私は正しい道にここにいるのですか? Api
スナップショットでデータベースにアクセスする正しい方法は何ですか?
主な理由は、/ 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