|
1 | 1 | [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-server/CHANGELOG.md)
|
2 | 2 | [Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
|
3 | 3 |
|
| 4 | +0.17 |
| 5 | +---- |
| 6 | + |
| 7 | +### Significant changes |
| 8 | + |
| 9 | +- Add NoContentVerb [#1028](https://github.com/haskell-servant/servant/issues/1028) [#1219](https://github.com/haskell-servant/servant/pull/1219) [#1228](https://github.com/haskell-servant/servant/pull/1228) |
| 10 | + |
| 11 | + The `NoContent` API endpoints should now use `NoContentVerb` combinator. |
| 12 | + The API type changes are usually of the kind |
| 13 | + |
| 14 | + ```diff |
| 15 | + - :<|> PostNoContent '[JSON] NoContent |
| 16 | + + :<|> PostNoContent |
| 17 | + ``` |
| 18 | + |
| 19 | + i.e. one doesn't need to specify the content-type anymore. There is no content. |
| 20 | + |
| 21 | +- `Capture` can be `Lenient` [#1155](https://github.com/haskell-servant/servant/issues/1155) [#1156](https://github.com/haskell-servant/servant/pull/1156) |
| 22 | + |
| 23 | + You can specify a lenient capture as |
| 24 | + |
| 25 | + ```haskell |
| 26 | + :<|> "capture-lenient" :> Capture' '[Lenient] "foo" Int :> GET |
| 27 | + ``` |
| 28 | + |
| 29 | + which will make the capture always succeed. Handlers will be of the |
| 30 | + type `Either String CapturedType`, where `Left err` represents |
| 31 | + the possible parse failure. |
| 32 | + |
| 33 | +- *servant-server* use queryString to parse QueryParam, QueryParams and QueryFlag [#1249](https://github.com/haskell-servant/servant/pull/1249) [#1262](https://github.com/haskell-servant/servant/pull/1262) |
| 34 | + |
| 35 | + Some APIs need query parameters rewriting, e.g. in order to support |
| 36 | + for multiple casing (camel, snake, etc) or something to that effect. |
| 37 | + |
| 38 | + This could be easily achieved by using WAI Middleware and modyfing |
| 39 | + request's `Query`. But QueryParam, QueryParams and QueryFlag use |
| 40 | + `rawQueryString`. By using `queryString` rather then `rawQueryString` |
| 41 | + we can enable such rewritings. |
| 42 | + |
| 43 | +- *servant* *servant-server* Make packages `build-type: Simple` [#1263](https://github.com/haskell-servant/servant/pull/1263) |
| 44 | + |
| 45 | + We used `build-type: Custom`, but it's problematic e.g. |
| 46 | + for cross-compiling. The benefit is small, as the doctests |
| 47 | + can be run other ways too (though not so conviniently). |
| 48 | + |
4 | 49 | 0.16.2
|
5 | 50 | ------
|
6 | 51 |
|
|
0 commit comments