Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Servant.Hateoas.Resource
Synopsis
- data ResourceLink
- type family MkResource ct :: Type -> Type
- class Resource res where
- wrap :: a -> res a
- addRel :: (String, ResourceLink) -> res a -> res a
- addSelfRel :: Resource res => ResourceLink -> res a -> res a
- class Resource res => EmbeddingResource res where
- class Resource res => CollectingResource res where
- collect :: a -> res a -> res a
- class ToResource res a where
- toResource :: Proxy res -> a -> res a
ResourceLink
data ResourceLink Source #
Type for Hypermedia-Links.
Constructors
CompleteLink Link | A complete |
TemplateLink RelationLink | A |
Instances
ToJSON ResourceLink Source # | |
Defined in Servant.Hateoas.Resource Methods toJSON :: ResourceLink -> Value # toEncoding :: ResourceLink -> Encoding # toJSONList :: [ResourceLink] -> Value # toEncodingList :: [ResourceLink] -> Encoding # omitField :: ResourceLink -> Bool # | |
Show ResourceLink Source # | |
Defined in Servant.Hateoas.Resource Methods showsPrec :: Int -> ResourceLink -> ShowS # show :: ResourceLink -> String # showList :: [ResourceLink] -> ShowS # |
Resource
MkResource
type family MkResource ct :: Type -> Type Source #
Type family computing the Resource-Type belonging to this Content-Type.
Instances
type MkResource (HAL t) Source # | |
Defined in Servant.Hateoas.ContentType.HAL |
Base Class
class Resource res where Source #
Class for resources that carry Hypermedia-Relations.
Methods
Wrap a value into a Resource
.
addRel :: (String, ResourceLink) -> res a -> res a Source #
Add a hypermedia relation (rel, link)
to a Resource
.
Instances
Resource HALResource Source # | |
Defined in Servant.Hateoas.ContentType.HAL Methods wrap :: a -> HALResource a Source # addRel :: (String, ResourceLink) -> HALResource a -> HALResource a Source # |
addSelfRel :: Resource res => ResourceLink -> res a -> res a Source #
Add the self-relation to a Resource
.
Specialized classes
class Resource res => EmbeddingResource res where Source #
Class for Resource
s that can embed other resources.
Methods
embed :: ToJSON e => (String, res e) -> res a -> res a Source #
Embed a resource b
with its relation rel
as tuple (rel, b)
.
Instances
EmbeddingResource HALResource Source # | |
Defined in Servant.Hateoas.ContentType.HAL Methods embed :: ToJSON e => (String, HALResource e) -> HALResource a -> HALResource a Source # |
class Resource res => CollectingResource res where Source #
Class for Resource
s that can collect multiple resources.
Creation
class ToResource res a where Source #
Class for converting values of a
to their respective Resource-Representation.
The default implementation wraps the value into a Resource
without adding any further information.
Therefore you can derive an instance for this class.
Minimal complete definition
Nothing
Methods
toResource :: Proxy res -> a -> res a Source #
Describes how a value a
can be converted to a Resource
.
default toResource :: Resource res => Proxy res -> a -> res a Source #
Instances
Resource res => ToResource res Intermediate Source # | |
Defined in Servant.Hateoas.Layer.Type Methods toResource :: Proxy res -> Intermediate -> res Intermediate Source # | |
Resource res => ToResource res [a] Source # | |
Defined in Servant.Hateoas.Resource Methods toResource :: Proxy res -> [a] -> res [a] Source # |