servant-db-0.2.0.1: Servant types for defining API with relational DBs

PortabilityPortable
Safe HaskellNone
LanguageHaskell2010

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: