This example project illustrates how to set up a project that:
- Uses haskell and servantas a backend exposing a JSON api (and serving some files).
- Uses elm to write the frontend.
- Uses servant-elmto generate client functions in elm for the JSON api. This means that mismatches regarding the JSON api will be detected statically.
- Allows a very fast development cycle: You can type-check the server and client code in a very short amount of time.
There's a Makefile included with the following targets:
- setup-- Set up everything: install ghc and dependencies. (Needs- stack,- elmand- elm-test.)
- build-- Build the server and the client.
- server-start-- Start the server here: http://localhost:3000/. Requests sent to this server will trigger a recompilation of the client code (not the server code).
- test-- Recompiles the client and server code. And runs the test-suite.
- This project uses https://travis-ci.org/soenkehahn/wai-make-assets, which is experimental. E.g. there's no support for serving the assets in a production setting.
This repository demonstrates a servant backend and an elm frontend. More code generation examples can be found in haskell-servant/servant-elm.