| Portability | Portable |
|---|---|
| Safe Haskell | None |
| Language | Haskell2010 |
Servant.API.DB
Description
The idea of package is to provide servant-like DSL for specifying an API for functions stored in RDBMS.
data RegisterUser = RegisterUser {
userName :: Text
, userPassword :: Text
, userPhone :: Phone
, userEmail :: Email
}
type API =
ArgNamed "user" RegisterUser
:> ArgNamed "isAdmin" Bool
:> Procedure "registerUser" (Maybe (Only UserId))
:| ArgPos UserId
:> Procedure "getUser" (Maybe User)
:| Procedure "listUsers" [User]
The library adds three custom combinators:
* `ArgNamed name a` - named argument of stored function of type a.
- `ArgPos a` - unamed argument of stored function of type
a. - `Procedure name a` - named stored function with return type
a.
Related libraries:
- servant-db-postgresql - derives client for PostgreSQL with postgresql-query library.