Oleg Grenrus
6527937e27
More robust testing, via resource state machine
2017-01-19 00:57:31 +02:00
Oleg Grenrus
d4fe0e582a
Fix stylistic issues
2017-01-19 00:57:31 +02:00
Oleg Grenrus
2caabad61a
Expose ResourceT, fix the test
2017-01-19 00:57:31 +02:00
Oleg Grenrus
091f6f4412
Add failing test
2017-01-19 00:57:31 +02:00
Oleg Grenrus
bc6ff20f4d
Use resourcet for resource managment
2017-01-19 00:57:31 +02:00
Oleg Grenrus
7793b52d23
Change JSON content type to add the charset
2017-01-18 13:40:18 +02:00
Oleg Grenrus
60ee1ab570
Rewrite delayed cleanup tests using IORefs
2017-01-18 10:26:23 +02:00
Alp Mestanogullari
bc13d5cd3e
warning free
2017-01-17 23:10:29 +02:00
Alp Mestanogullari
92786feead
add some basic tests for the cleanup machinery in Delayed
2017-01-17 22:29:37 +02:00
Alp Mestanogullari
5d1f03ba1a
use an ioref to store clean up actions instead of a field in Delayed, allowing early clean up registration
2017-01-17 22:29:37 +02:00
Alp Mestanogullari
7fb11dae3c
make cleanup in Delayed more resistant to exceptions
2017-01-17 22:29:37 +02:00
Alp Mestanogullari
6ab0296d62
fix a warning
2017-01-17 22:29:37 +02:00
Alp Mestanogullari
124c6de1eb
add a field in Delayed that lets us specify a clean up action that can use the result of bodyD to perform some IO clean up operation
2017-01-17 22:29:36 +02:00
Alp Mestanogullari
57445ac1c9
changelog entry
2017-01-17 14:15:32 +02:00
Alp Mestanogullari
6d35f3d88f
reintroduce serveDirectory (to give some time to users to change their code), but deprecate it
2017-01-17 14:14:46 +02:00
Alp Mestanogullari
0a3b2272de
fix static file serving test
2017-01-17 14:14:46 +02:00
Alp Mestanogullari
8efabed5c6
Revamp static file serving module.
...
Instead of only exposing 'serveDirectory', which picks a specific static file
serving strategy (file server settings), we now expose 4 different variants each
corresponding to an variant of StaticSettings in wai-app-static.
In addition to these, we expose a more flexible 'serveDirectoryWith' function
which allows the user to specify some arbitrary StaticSettings, if the 4
existing variants do not cover a user's needs.
2017-01-17 14:14:46 +02:00
Oleg Grenrus
5168157757
Make Handler a newtype
2017-01-16 12:18:49 +02:00
Oleg Grenrus
d5e73bf577
Make servant buildable with cabal new-build
2017-01-16 11:03:06 +02:00
Oleg Grenrus
e6206cc51e
Add more changelog entries
2017-01-16 10:11:38 +02:00
Oleg Grenrus
85feb31cbb
Fix hspec-wai issue
2017-01-01 20:52:18 +02:00
Oleg Grenrus
1f00a68937
Support aeson-1.1
2017-01-01 20:02:56 +02:00
Yusuke Sangenya
d2a51396cc
add HTTP status code 422
2016-12-03 16:44:34 +09:00
Julian K. Arni
4fd31a60fb
Bump version.
...
To 0.9.1.1
2016-10-27 13:25:27 +02:00
Julian K. Arni
9e809a0756
Bump version.
...
To 0.9.1.
2016-10-26 17:35:57 +02:00
Sönke Hahn
3f6ecbb77b
add err418
2016-10-24 10:42:48 -04:00
Julian K. Arni
3ddf225cec
Bump version.
...
To 0.9.0.1.
2016-10-09 22:52:49 +02:00
Sönke Hahn
bc1a3e7faa
bump version
2016-09-17 11:47:57 -04:00
Julian K. Arni
501212e6b9
Review fixes
2016-09-12 20:40:03 -03:00
Oleg Grenrus
f44b336bf1
Support http-api-data-0.3
2016-09-12 18:34:00 -03:00
Julian Arni
29af0bbdf9
Merge pull request #585 from axman6/axman6/get-headers-581
...
Replace use of ToByteString with HttpApiData for GetHeaders
2016-09-06 20:59:46 -03:00
Julian K. Arni
bf824a3889
Bump version to 0.8.1
2016-09-02 13:09:47 -03:00
Alex Mason
5bef76ed03
Remove all use of bytestring-conversion
2016-09-02 23:27:37 +10:00
Sönke Hahn
d0a28e46b0
add missing test file to servant-server.cabal
2016-08-14 22:59:12 +02:00
Oleg Grenrus
6999b00297
Support aeson-1
2016-08-07 20:12:09 +03:00
Jonathan Lange
c79a254b36
servant-server support for CaptureAll
2016-07-11 14:46:31 +01:00
Sönke Hahn
8eb412ff23
bump version
2016-07-10 17:21:36 +02:00
Arian van Putten
05379ed7e3
Replace all occurances of () with NoContent
...
We use NoContent to signify an empty response nowadays. This commit
replaces all occurences of () with NoContent so that all packages use
the new semantics.
2016-07-10 16:58:59 +02:00
Oleg Grenrus
a7a3294752
Add bounds to servant, servant-server and servant-clients
...
(cherry picked from commit a0d5ed9aea
)
2016-07-09 18:33:19 +02:00
Sönke Hahn
5effdfdbbb
Rename type variables 'layout' and 'sublayout' to 'api'
2016-07-03 22:46:46 +08:00
Sönke Hahn
3c27ff5a32
added test script for stack files (and fixed stack for ghc-7.8)
2016-05-29 00:03:46 +08:00
Julian Arni
ea36656dcd
Merge pull request #505 from haskell-servant/jkarni/reexport-application
...
Re-export Application.
2016-05-12 10:38:46 +02:00
Julian Arni
ff40b327bc
Merge pull request #504 from haskell-servant/jkarni/doc-fixes
...
Doc fixes
2016-05-12 09:53:35 +02:00
Julian K. Arni
211254512e
Re-export Application.
2016-05-11 12:17:36 +02:00
Sönke Hahn
d8a4cce691
version bump
2016-05-11 12:09:25 +08:00
Julian K. Arni
7174f5185d
Changelog updates for GHC 8.0 support.
2016-05-10 22:45:29 +02:00
Oleg Grenrus
a5cf899eb8
Add RouterSpec and StreamingSpec to servant-server.cabal
2016-05-10 19:14:04 +03:00
Oleg Grenrus
008f2434ee
Add -Wno-redundant-constraints
2016-05-10 19:09:59 +03:00
Oleg Grenrus
fd19694ed5
Make doctests accept GHC-8.0 formatted type errors
2016-05-10 19:09:59 +03:00
Amar
e9cbb85ce1
Add changelog entries
2016-05-10 22:19:27 +08:00
Julian K. Arni
d4c5edea25
Change throwErr to throwError.
2016-05-10 13:30:57 +02:00
Amar
845a06ccbd
Correct the description of arbitrary monad server spec
2016-04-28 22:27:50 +08:00
Amar
61a99c9567
Replace Servant.Server.Internal.Enter with Servant.Utils.Enter in a comment
2016-04-28 22:26:27 +08:00
Amar
3f4bcf7752
Remove mmorph dependency from servant-server
2016-04-28 22:13:09 +08:00
Amar
a948639673
Move enter to servant package
2016-04-28 22:13:04 +08:00
Sönke Hahn
e0216781b0
set the homepage to readthedocs
2016-04-22 14:12:21 +08:00
Sönke Hahn
b26bbfccda
travis: enable -Wall -Werror
2016-04-21 13:06:10 +08:00
Sönke Hahn
ab6131d733
version bump
2016-04-15 18:35:17 +08:00
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
Andres Löh
1807c72c8a
Merge pull request #388 from bgamari/master
...
Compatibility with GHC 8.0
2016-04-13 15:09:16 +02:00
Andres Loeh
b1a6d88845
Revise the Router type to allow proper sharing.
...
We've previously used functions in the Router type to provide
information for subrouters. But this accesses the Requests too
early, and breaks sharing of the router structure in general,
causing the Router or large parts of the Router to be recomputed
on every request.
We now do not use functions anymore, and properly compute all
static parts of the router first, and gain access to the request
only in Delayed.
This also turns the code used within Delayed into a proper monad
now called DelayedIO, making some of the code using it a bit
nicer.
2016-04-12 09:38:49 +02:00
Sönke Hahn
d4c6f67cf0
servant-server: update changelog
2016-04-12 13:58:00 +08:00
Luke Cycon
21546991af
Introduce a Handler
alias for ExceptT ServantErr IO
...
Fixes #434
2016-04-11 22:27:29 -07:00
Sönke Hahn
b8422e80b2
Merge #456
2016-04-12 13:00:39 +08:00
Luke Cycon
353c1798e1
Update some docs and the changelogs
2016-04-11 11:19:18 -07:00
Andres Loeh
8c778825c7
Improvements and visualization of router structure.
...
* Improves how Routers are built, in particular via
the `choice` smart constructors. Static lookups are
now used more often.
* We now have test cases making sure that certain
routers have the same structure.
* The router structure can now be visualized for debugging
purposes as a tree. The new functions `layout` and
`layoutWithContext` do this.
2016-04-11 08:08:37 +02:00
Luke Cycon
f484483d84
Re-export throwE
from module Servant
...
Fixes #442
2016-04-08 12:06:44 -07:00
Sönke Hahn
21822be75a
update servant-server's changelog for 0.6.1
2016-04-08 14:49:51 +08:00
Sönke Hahn
8bf81190b2
add one more auth test
...
just to clarify on how to use it properly
2016-04-07 19:10:11 +08:00
Sönke Hahn
c2c9bef571
version bump
2016-04-07 18:24:29 +08:00
aaron levin
8a0c3a9497
Add test: Gen Auth properly supports Raw endpoints
2016-04-06 13:45:44 +02:00
Sönke Hahn
6df3429b68
refactored basic auth test cases
2016-04-06 16:44:40 +08:00
Sönke Hahn
14ff219726
fix error status bug in basic auth
...
Fixes #440 .
2016-04-06 11:18:20 +08:00
Sönke Hahn
4224c20bff
some formatting and refactoring
2016-04-06 11:18:20 +08:00
Sönke Hahn
14a8139cbe
version bump
2016-04-04 16:22:11 +08:00
Sönke Hahn
2367ee9965
put 0.6 into changelogs
2016-04-04 16:22:11 +08:00
Sönke Hahn
b72c271c2c
remove ToText from docs
2016-04-02 15:03:00 +08:00
Sönke Hahn
97168459fd
servant-server: add a test-case for streaming request bodies from client to server
2016-03-27 17:23:33 +08:00
Sönke Hahn
5890d5253b
update changelog
2016-03-27 17:05:59 +08:00
Sönke Hahn
09c40f61e2
return 400 (instead of 404) on invalid captures
2016-03-26 20:59:00 +08:00
Sönke Hahn
b4eef7acde
refactored HasServer Capture instance
2016-03-26 20:58:59 +08:00
Alexander Kjeldaas
0c01b0dba4
Fixed some minor typos
2016-03-25 19:09:44 +01:00
Alexander Kjeldaas
0ad60fe093
Document http error codes
2016-03-25 10:53:45 +01:00
Julian K. Arni
101e138a4b
Cut 0.5 in changelogs
2016-03-19 13:26:13 +01:00
Denis Redozubov
a22a981190
update base-compat imports
2016-03-13 12:44:12 +03:00
Denis Redozubov
c755f47806
use base-compat in servant-server
2016-03-13 12:42:41 +03:00
aaron levin
b3af5a8d95
Move general authentication to Experimental module
...
Removes the UndecidableInstances extension in the module containing the
HasServer instances.
2016-03-09 22:30:34 +01:00
aaron levin
29f8e64e1c
Add Experimental warnings on combinators
2016-03-09 22:30:34 +01:00
aaron levin
cd31b20cd8
Update CHANGELOG for generalized authentication support
2016-03-09 22:30:34 +01:00
aaron levin
0461c4642d
Add gen. authentication support to servant-server
2016-03-09 22:30:28 +01:00
aaron levin
546adc391a
basic-auth: config -> context
2016-03-08 23:28:27 +01:00
aaron levin
1e703be15f
replace serve with serveWithConfig
2016-03-08 23:13:05 +01:00
aaron levin
60a536382f
Update CHANGELOG for basic authentication support
2016-03-08 23:13:05 +01:00
aaron levin
104ac29bf8
Add BasicAuth support to servant-server
2016-03-08 23:13:02 +01:00
aaron levin
84172c6135
Augment Delayed to handle authentication.
2016-03-08 23:08:17 +01:00
Sönke Hahn
c6b6639453
reworded Context comment
2016-03-07 23:12:25 +08:00
Sönke Hahn
8ef4d4543b
renaming: Config -> Context
2016-03-07 23:12:24 +08:00
Robert Klotzner
deb2ccaab0
Removed comment
...
as suggested by @soenkehahn
2016-03-04 12:11:44 +01:00
Robert Klotzner
c311f1a90b
Added DeriveDataTypeable ghc-7.8.4 needs that.
2016-02-26 13:01:54 +01:00
Robert Klotzner
b1ff2beb8a
Make ServantErr throwable
2016-02-26 12:27:19 +01:00
Ben Gamari
3467eba44f
servant-server: Bump transformers upper bound
2016-02-20 13:36:50 +01:00
Julian Arni
d46cde913c
Merge pull request #387 from ondrap/master
...
Bump aeson version.
2016-02-19 15:33:11 +01:00
Ondrej Palkovsky
2cdd6a5fea
Bump aeson version.
2016-02-18 22:45:05 +01:00
Julian K. Arni
f137972e5d
Add 'serveWithConfig'.
...
And keep the old signature for 'serve'
2016-02-18 16:36:24 +01:00
Julian Arni
761443fffe
Merge pull request #357 from haskell-servant/jkarni/remove-memoReqBody
...
Remove memoReqBody.
2016-02-05 20:05:49 +01:00
Andres Loeh
927009408b
Small whitespace fix.
2016-01-28 11:08:22 +01:00
Andres Loeh
2934bac40c
Small whitespace fix.
2016-01-28 11:07:59 +01:00
Andres Loeh
c532ecffd5
Small doc fix.
2016-01-28 11:07:36 +01:00
Julian K. Arni
3bd3eff488
Add test for failing 400
2016-01-26 18:47:34 +01:00
Julian K. Arni
1aeee3ef94
Remove memoReqBody.
2016-01-26 14:43:15 +01:00
Sönke Hahn
b9fb80ac5e
server/config: tweak changelog
2016-01-21 18:04:00 +01:00
Sönke Hahn
09b22452aa
server/config: added more documentation
2016-01-21 17:58:50 +01:00
Sönke Hahn
df09f8616e
config: remove HasConfig and make HasServer take config
as a parameter
2016-01-21 17:58:50 +01:00
Julian K. Arni
35bdc54dee
Update changelogs
2016-01-21 17:55:02 +01:00
Sönke Hahn
2445855203
servant-server: renaming of type variable
2016-01-21 17:55:02 +01:00
Sönke Hahn
2176fecfda
config: added instances for all interpretations
2016-01-21 17:55:02 +01:00
Sönke Hahn
67315c4487
server: added Config machinery
2016-01-21 17:55:02 +01:00
Julian K. Arni
be36e5b313
Change copyright to servant contributors
2016-01-20 16:58:29 +01:00
Christian Marie
9c67267071
servant-server: fix comment typo
2016-01-19 11:06:38 +11:00
Sönke Hahn
ac930ef198
ComprehensiveAPI: add some comments (and minor tweaks)
2016-01-18 20:06:45 +01:00
Sönke Hahn
e5974ec94d
add ComprehensiveAPI to test whether we're missing instances
...
Some of the combinators are commented atm, because we *are* missing combinators.
2016-01-18 12:28:29 +01:00
Sönke Hahn
c6e0ccbc2f
server/docs: fix formatting inconsistency
2016-01-14 23:58:48 +01:00
Julian K. Arni
f1b6603c52
Review fixes
2016-01-08 18:03:28 +01:00
Julian K. Arni
783a849c67
Make NoContent still take an arg.
...
For consistency with other combinators, and to make using headers
easier.
2016-01-07 14:30:08 +01:00
Julian K. Arni
5909a6df7a
Fix rebase issues.
2016-01-07 13:47:08 +01:00
Julian K. Arni
c6071bfb02
Don't override status code on empty body.
2016-01-07 13:47:08 +01:00
Julian K. Arni
cda8bcf17c
Simplify verb combinators.
...
Create a single 'Verb' combinator with parameters for status code and
method. Make existing combinators type synonyms of 'Verb'.
2016-01-07 13:47:07 +01:00
Luigy Leon
17fcc25d87
add include header files to extra-source-files
2016-01-04 23:05:05 -05:00
Julian K. Arni
79d4f944a4
less OverlappingInstances noise
2016-01-04 13:09:11 -05:00
Julian K. Arni
a4a0f1988b
Bump wai and warp upper bound to < 3.3.
2016-01-04 17:21:14 +01:00
Philipp Kant
da5c273640
Relaxed upper version bound for http-api-data ...
...
... in order to include http-api-data-0.2.1, which is currently in LTS
Haskell (lts-3.16).
2015-12-03 14:13:50 +01:00
Simon Hengel
4e53e2083b
Use tinc on travis
2015-11-05 09:32:13 +08:00
Julian K. Arni
9c12b7839b
7.8 routing fixes, -Wall, cleanup, changelog.
2015-10-26 16:56:46 +01:00
Andres Loeh
1398d1f5e1
More systematic approach to delayed checks.
...
This introduces a `Delayed` type in `RoutingApplication.hs` that
contains a handler together with delayed checks. There are several
blocks of delayed checks, so that we can ultimately execute them in the
order we desire.
The process is documented in more detail in `RoutingApplication.hs`.
2015-10-26 16:56:25 +01:00
Julian K. Arni
ccadba81ec
Cleanup errorspec description of routing, changelog.
...
Review fixes
2015-10-26 16:55:13 +01:00
Julian K. Arni
a3b5652ab9
Refactor RouteResult.
...
Fix rerouting tests
Fix 405 > 404 issue with Capture.
Remove ServantErrWithPriority and Monoid instance
More tests
Update auth-combinator for routing changes
2015-10-26 16:54:49 +01:00
Julian K. Arni
153de01a62
Error retry tests
...
Mime[Un]Render instances for PlainText String
pragmas and formatting
2015-10-26 16:54:28 +01:00
Julian K. Arni
9c62a3b150
Error order tests
2015-10-20 12:41:32 +02:00
Julian K. Arni
c22b5d1938
Changelogs for matrix params
2015-10-13 21:46:52 +02:00
Julian K. Arni
afc76b8f6c
Remove MatrixParam.
...
In servant, servant-server, and servant-client.
2015-10-13 21:37:07 +02:00
Julian K. Arni
72acd1a19d
Bump upper bound for http-types.
2015-10-13 20:53:56 +02:00
Matthias Fischmann
8f01efd599
Export tweakResponse from non-internal module; better haddock comment.
2015-10-12 21:58:06 +02:00
Matthias Fischmann
dd1d30843b
Test case for tweakResponse.
2015-10-12 21:58:04 +02:00
Matthias Fischmann
f953d05212
Whitespace.
2015-10-12 21:47:50 +02:00
Matthias Fischmann
d106ed9c9f
Use Functor class for functor business.
2015-10-12 21:47:47 +02:00
Matthias Fischmann
96f10add65
fmapRouter.
2015-10-12 17:06:43 +02:00
Alp Mestanogullari
5a032383bc
update servant-server README
2015-10-10 19:31:03 +02:00
Nickolay Kudasov
2a7d110c17
Add version bounds for http-api-data
2015-10-08 16:21:02 +03:00
Nickolay Kudasov
dfb5cc7713
Update changelogs
2015-10-08 01:15:30 +03:00
Nickolay Kudasov
63a36e3b4e
Fix warning
2015-10-08 00:57:18 +03:00
Nickolay Kudasov
40d2c68897
Use http-api-data package instead of ToText/FromText
2015-10-08 00:38:47 +03:00
Julian K. Arni
3c3efda0d5
Extra file
2015-09-23 20:18:52 +02:00
Julian K. Arni
965063171b
Janitoring
2015-09-23 20:18:52 +02:00
Julian K. Arni
2be621871d
Document octet-stream default RFC.
2015-09-15 17:24:37 +02:00
Index Int
c5257f42ab
Depend on transformers-compat
2015-09-12 16:28:20 +03:00
Index Int
f2f7b061d2
Drop EitherT
in favor of ExceptT
2015-09-12 15:11:24 +03:00
Jonathan Lange
6a35a0ae7a
Remove auto-generated nix files
2015-09-08 20:36:54 +01:00
Jonathan Lange
a265fd31a0
Run of update-nix-files.sh
2015-09-08 20:28:47 +01:00
Julian K. Arni
6eb7add53a
stylish haskell changes
...
And import fix.
2015-08-18 00:07:12 +02:00
Julian K. Arni
98b6e85128
Contributing
2015-08-17 23:50:42 +02:00
AndrewRademacher
e780e445cb
Bumped aeson version.
2015-08-06 13:40:18 -05:00
Brandon Martin
050aa21b9d
Response with Head to all Get requests
...
Signed-off-by: Brandon Martin <zmbmartin@gmail.com>
2015-08-01 07:58:56 -06:00
Brandon Martin
b40094d01c
convenience scripts and nix updates
2015-07-30 08:09:29 -06:00
Julian Arni
522a7dc961
Merge pull request #165 from haskell-servant/jkarni/bump-warp
...
Bump warp upper bound.
2015-07-30 10:44:35 +02:00
Julian K. Arni
1c9d5baa99
Bump versions to 0.5
2015-07-27 22:26:49 +02:00
Sönke Hahn
e24cb9ddf6
add stack file
2015-07-26 17:25:07 +08:00
Julian K. Arni
42d73d10e6
Bump warp upper bound.
...
To < 3.2.
2015-07-23 13:31:37 +02:00
Alp Mestanogullari
3209f98985
Merge pull request #141 from haskell-servant/new-combinators
...
Add HttpVersion, IsSecure, RemoteHost and Vault combinators with inst…
2015-07-10 15:00:19 +02:00
Alp Mestanogullari
f39d57c6b3
add HttpVersion, IsSecure, RemoteHost and Vault combinators with instances for all interpretations (all but the server ones being 'ignore that combinator')
...
tighter version bounds for network
cleanup
document the new combinators
servant-server: add some tests for HttpVersion, IsSecure, RemoteHost and Vault
update changelogs
address Julian's feedback
remove vault test in servant-server
servant-server tests: -Werror friendly
2015-07-10 14:00:01 +02:00
Julian K. Arni
5db91c9ecb
Cabal file fixes
2015-07-09 23:34:21 +02:00
Julian K. Arni
d5091a68e1
Bump string-conversions
2015-06-04 15:09:01 +02:00
Alp Mestanogullari
d654ccaf3d
Merge pull request #111 from haskell-servant/improved-routing
...
Improved routing
2015-06-04 12:57:45 +01:00
Andres Loeh
31b12d4bf4
Refactoring: abstracting common parts of method handlers.
...
This change makes an attempt of abstracting out some of the common
functionality found in the handlers for the different request methods.
There's still a bit of code duplication between the cases for headers
and no headers and empty responses. But it's a significant relative
improvement already.
2015-06-04 13:14:51 +02:00
Andres Loeh
eb86a82105
Refactoring: one module per concept.
...
The main `Server.Internal` module was getting a bit large for my taste.
It now contains just the instances. All the administrative utilities
are in their own dedicated modules.
2015-06-04 13:14:31 +02:00
Andres Loeh
404bfdd89c
Add test cases for the priority of error codes.
...
Due to the delayed treatment of checks during the server interpretation,
we now have the ability to produce "better" error codes for certain
APIs. This change introduces test cases for some of these situations and
their new, desired results. These tests would mostly fail with the old
approach to routing.
2015-06-04 13:10:21 +02:00
Andres Loeh
f9b1e7fc50
Switch server interpretation to a datatype for efficiency.
...
Instead of directly interpreting a server as a `RoutingApplication`,
this change introduces the concept of a `Router`, which is a datatype
with several constructors.
In particular, the type of the `route` function changes from
route :: Proxy layout -> Server layout -> RoutingApplication
to
route :: Proxy layout -> IO (RouteResult (Server layout)) -> Router
Most important in practice is the case of the `StaticRouter` constructor
in `Router`. For choices between statically known paths, we can now use
a lookup table to dispatch requests rather than trying each request
individually.
This brings down routing complexity of a common case from
O(n) to O(log n).
Another important change is that the handler that is passed down by
`route` is no longer of type `Server layout`, but of type
`IO (RouteResult (Server layout))`. This means that API constructs
can "delay" checks and failure. For example, `ReqBody` does not have
to fetch the request body and feed it to the handler immediately; it
can instead record these actions in the handler that is passed down.
The code will only be executed at a leaf / endpoint of the API.
This is desired behaviour: We prefer to save work by doing all matching
on static path components first. Furthermore, we get better error codes
by doing so.
2015-06-04 13:07:53 +02:00
Ben Gamari
939a008b67
Bump aeson bound
2015-06-03 06:53:34 -04:00
Julian K. Arni
0b3291970f
Bump to 0.4.1
2015-05-29 16:24:08 +02:00
Alp Mestanogullari
db8cf8bd8d
Merge pull request #106 from haskell-servant/jkarni/bump-either
...
Bump 'either' upper-bound
2015-05-29 14:56:45 +01:00
Julian K. Arni
ce012da4ee
Bump 'either' upper-bound
2015-05-29 14:37:10 +02:00
Julian K. Arni
5de9daf528
Fix outdated docs
2015-05-29 10:59:24 +02:00
Julian K. Arni
28387b7804
Update changelog
2015-05-27 15:29:34 +02:00
Julian K. Arni
2bff26feca
Bump attoparsec
2015-05-27 15:19:30 +02:00
Julian Arni
763928cd66
Merge pull request #82 from triplepointfive/drop-system-filepath
...
Add support for wai-app-static-3.1.0
2015-05-18 12:55:40 +02:00
Christian Marie
ec55177796
servant, servant-server: handle corner case in doctests
...
They seem to encounter multiple sandboxes sometimes, we now provide a more
helpful error if that happens. Didn't look into why this happens.
2015-05-16 12:45:08 +10:00
Ilya Smelkov
7e14eeafe9
Use filepath to add trailing path separator
2015-05-16 01:03:48 +03:00
Julian K. Arni
c41267811e
CPP for support for all 3.X versions of wai-app-static
2015-05-16 01:01:55 +03:00
Sönke Hahn
0d47f4527b
fix doctests for cabal-install-1.18
2015-05-14 19:47:39 +08:00
Alp Mestanogullari
405d69d954
fix some links in the cabal descriptions
2015-05-11 10:43:52 +02:00
Julian K. Arni
b81ea9eee2
Bump everything to 0.4
2015-05-09 17:28:52 +02:00
Brandon Martin
95abfc4090
fix ToSample instance and update changelogs
2015-05-07 05:22:01 -06:00
Brandon Martin
10a6020ca2
modify delete to allow for response body
2015-05-06 13:21:35 -06:00
Julian K. Arni
59cc7972de
Changelog updates
2015-05-04 17:04:11 +02:00
Julian K. Arni
92d65aaf49
-Wall fixes
2015-05-03 13:36:51 +02:00
Julian K. Arni
50b05860b7
Remove Canonicalize
2015-05-03 01:45:17 +02:00
Julian K. Arni
bdf6d9aa48
Better docs for servant-server
2015-05-03 01:28:13 +02:00
Julian K. Arni
3b4b958110
Doctests for servant-server
2015-05-03 01:27:48 +02:00
Julian K. Arni
74f4d2db14
Enter via natural transformations
2015-05-03 00:15:35 +02:00
Julian K. Arni
a2b8d6ae58
Better servant-server left
2015-05-02 03:38:53 +01:00
Julian K. Arni
5531ada22b
Headers for all
2015-05-02 02:21:03 +01:00