Go to file
Andres Loeh a551eb62e2 Do the accept check before the body check.
This is a reasonably simple attempt at fixing #460.
By moving the accept check to a place before the body check,
we can make it recoverable (the body check is irreversible,
so everything done after the body check has to fail fatally).

The advantage is that we can now specify routes offering
different content types modularly. Failure to match one
is not fatal, and will result in subsequent routes being
tried.

The disadvantage is that we hereby bump the error priority
of the 406 status code. If a request contains a bad accept
header and a bad body, we now get 406 rather than 400. This
deviates from the HTTP decision diagram we try to follow,
but seems like an acceptable compromise for now.
2016-04-15 10:54:22 +02:00
doc Introduce a Handler alias for ExceptT ServantErr IO 2016-04-11 22:27:29 -07:00
scripts move doc/tutorial out of sources.txt 2016-04-04 16:22:11 +08:00
servant Merge pull request #388 from bgamari/master 2016-04-13 15:09:16 +02:00
servant-blaze version bump 2016-04-07 18:24:29 +08:00
servant-cassava version bump 2016-04-07 18:24:29 +08:00
servant-client Introduce a Handler alias for ExceptT ServantErr IO 2016-04-11 22:27:29 -07:00
servant-docs Sort out this changelog situation 2016-04-11 21:54:04 -07:00
servant-foreign version bump 2016-04-07 18:24:29 +08:00
servant-js remove redundant import to remove warnings 2016-04-13 15:41:51 +02:00
servant-lucid version bump 2016-04-07 18:24:29 +08:00
servant-mock Introduce a Handler alias for ExceptT ServantErr IO 2016-04-11 22:27:29 -07:00
servant-server Do the accept check before the body check. 2016-04-15 10:54:22 +02:00
.gitignore tutorial: update .gitignore 2016-03-19 17:40:00 +08:00
.stylish-haskell.yaml Contributing 2015-08-17 23:50:42 +02:00
.travis.yml move travis script into a file 2016-04-04 16:22:11 +08:00
CONTRIBUTING.md Merge pull request #330 from haskell-servant/jkarni/at-maintainers 2016-01-16 17:59:22 +01:00
HLint.hs Contributing 2015-08-17 23:50:42 +02:00
README.md First pass at CONTRIBUTING 2016-01-07 00:53:17 +01:00
servant.png Update READMEs 2015-04-20 15:48:37 +02:00
sources.txt sources.txt: prefer servant-server and servant-client 2016-04-07 18:07:39 +08:00
stack-ghc-7.8.4.yaml use base-compat 2016-03-13 12:42:41 +03:00
stack.yaml Fix compilation 2016-03-19 17:40:00 +08:00
travis.sh move doc/tutorial out of sources.txt 2016-04-04 16:22:11 +08:00

servant - A Type-Level Web DSL

servant

Getting Started

We have a tutorial that introduces the core features of servant. After this article, you should be able to write your first servant webservices, learning the rest from the haddocks' examples.

Other blog posts, videos and slides can be found on the website.

If you need help, drop by the IRC channel (#servant on freenode) or mailing list.

Contributing

See CONTRIBUTING.md