Generate graphs from Servant API types. Inspired by choclety.
This library helps you render your Servant API as a state machine, with representations as states and requests as state transitions. This could be useful, for example, when looking for the shortest path(s) to reach a desired state (such as a revenue-generating action).
It also includes the beginnings of a HAL library for Servant, for serving a hypermedia API.
- haskell-stack:
curl -sSL https://get.haskellstack.org/ | sh
- run
stack setup
to obtain the Haskell compiler
- run
See the Haddock documentation.
The library exposes a function stateGraph
that can generate graph JSON
suitable for use with the included viewer or serve the viewer on a
desired port.
To serve up the graph viewer (uses Cytoscape.js) at 127.0.0.1:8090 for a sample API:
stack build && stack exec state-graph
To serve up the sample API itself on port 8080:
stack exec state-graph-server
Or, to serve up the HAL-supporting version of the API:
stack exec state-graph-server -- --hyper
To run the test suite:
stack test