-- | This module re-exports types and combinators required for type level -- construction of API request components and expected type structure of an http request response. module Hreq.Core.API ( -- * Request module Hreq.Core.API.Request -- * Response , module Hreq.Core.API.Response -- * API Types and Kinds , module Hreq.Core.API.Internal -- * MediaType , module Hreq.Core.API.MediaType -- * Streaming , module Hreq.Core.API.Streaming -- * TypeLevel , module Hreq.Core.API.TypeLevel -- * Verb , module Hreq.Core.API.Verb -- * API Type Synonyms , module Hreq.Core.API -- * Re-exports , ToHttpApiData (..) , Header , Status (..) , HeaderName ) where import Data.Kind import Hreq.Core.API.Internal import Hreq.Core.API.MediaType import Hreq.Core.API.Request import Hreq.Core.API.Response import Hreq.Core.API.Streaming import Hreq.Core.API.TypeLevel import Hreq.Core.API.Verb import Network.HTTP.Types (Header, HeaderName, Status (..)) import Web.HttpApiData (ToHttpApiData (..)) type StatusCode = Int type JsonBody (a :: Type) = ReqBody JSON a -- | ==Response Type synonyms type GetJson a = Get '[ ResBody JSON a] type PostJson a = Post '[ResBody JSON a] type PutJson a = Put '[ ResBody JSON a] type PatchJson a = Patch '[ ResBody JSON a] type DeleteJson a = Delete '[ResBody JSON a] type RawResponse v = Verb v '[ Raw ] type EmptyResponse v = Verb v ('[ ] :: [ ResContent Type ])