| Safe Haskell | Safe-Inferred |
|---|---|
| Language | GHC2021 |
Servant.Hateoas.Resource
Synopsis
- type family MkResource ct :: Type -> Type
- class Resource res where
- wrap :: a -> res a
- addRel :: (String, RelationLink) -> res a -> res a
- addSelfRel :: Resource res => RelationLink -> 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 :: (res ~ MkResource ct, Accept ct) => Proxy res -> Proxy ct -> a -> res a
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, RelationLink) -> 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, RelationLink) -> HALResource a -> HALResource a Source # | |
addSelfRel :: Resource res => RelationLink -> res a -> res a Source #
Add the self-relation to a Resource.
Specialized classes
class Resource res => EmbeddingResource res where Source #
Class for Resources 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 Resources 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 :: (res ~ MkResource ct, Accept ct) => Proxy res -> Proxy ct -> a -> res a Source #
Describes how a value a can be converted to a Resource.
default toResource :: (res ~ MkResource ct, Resource res) => Proxy res -> Proxy ct -> a -> res a Source #
Instances
| Resource res => ToResource res Intermediate Source # | |
Defined in Servant.Hateoas.Layer.Type Methods toResource :: (res ~ MkResource ct, Accept ct) => Proxy res -> Proxy ct -> Intermediate -> res Intermediate Source # | |
| Resource res => ToResource res [a] Source # | |
Defined in Servant.Hateoas.Resource Methods toResource :: (res ~ MkResource ct, Accept ct) => Proxy res -> Proxy ct -> [a] -> res [a] Source # | |