# Changelog
#### 0.35.1
* Remove unneeded constraint from `domainReason`.
## 0.35
* Change input/output dictionaries to indicate separately if there are
dictionaries, and for what type. This is a breaking change. The most
likely problems are where `Reason ()` is explicitly used in handlers
without error dictionaries. Simply replace these with `Reason_`.
Additionally, all `some*` combinators are deprecated now. They are
just the identity function and can be removed.
* The types of all dictionary combinators have changed, the Dicts
type, the dicts smart constructor, empty, SomeError, Modifier, many
internal (but exported) things in Rest.Driver.Perform, some types in
Rest.Handler, and Void was moved.
* Switched all usages of `ErrorT` to `ExceptT`. To stay backwards
compatible with older versions of `transformers` and `mtl` you can
use the `transformers-compat` and `mtl-compat` packages. To update
your code: `s/ErrorT/ExceptT` and
`s/Control.Monad.Error/Control.Monad.Except/`.
* Add `>|<` to `Rest.Error`. It combines two `ExceptT` computations
yielding the last error if both fail. This is a replacement for
using `<|>` with `ErrorT` since the `Alternative ExceptT` instance
needs a `Monoid` instance for the error.
* Fix typos in haddock for `Param` dictionary.
* Switch to explicit export lists where missing.
#### 0.34.0.3
* Allow `aeson-utils 0.3.*`
#### 0.34.0.2
* Allow utf8-string 1.
#### 0.34.0.1
* Fix for base 4.8/GHC 7.10.
## 0.34
* Allow setting the method in the requests in a top level multi
handler.
* The `getMethod` `Rest` class function now returns a `Maybe`.
* The `route` method in `Rest.Driver.Routing` now takes a `Maybe
Method`.
* The `Method` type was removed from `Rest.Driver.Types` and moved to
rest-types' `Rest.Types.Method`.
#### 0.33.2
* Allow top level multi handler as a POST as well as a GET.
Technically, you're not allowed to vary the response based on the
body of a GET. Also, in some frameworks (e.g. jQuery) it isn't
possible to set the body of a GET.
#### 0.33.1.2
* Typo fixes in documentation.
#### 0.33.1.1
* Declare correct error return type for derived multi handlers. These
were declared as `Reason (Reason e)`, now they are `Reason ()`. This
generated confusing documentation.
### 0.33.1
* Move `Range` from `Rest.Handler` into `rest-types`. Still re-exported.
## 0.33
* Added a `Rest.Types.Error.ToResponseCode` constraint to `jsonE`, `xmlE`, and `xmlJsonE`.
* Changed `domainReason` to have a `ToResponseCode` constraint instead of an explicit argument.
* Added `Rest.ShowUrl` re-exporting `ShowUrl` from `rest-types`.
* `application/*` and `application/octet-stream` accept headers now match file outputs.
#### 0.32.0.2
* Allow random 1.1.*
#### 0.32.0.1
* Fix bug in Chrome when serving files with commas in name.
## 0.32
* Add `addHeader` dictionary combinator, to extend instead of replace
the header dictionaries. For this, a constructor `TwoHeaders` was
added to `Header`.
* Relax the types of `mkListing` and `mkOrderedListing` to allow
parameters and headers.
### 0.31.1
* Expose `Rest.Driver.Routing.splitUriString`.
* Make test cases compile again.
## 0.31
* Schema: `action` has been renamed to `static` since it is tied to `statics` and to disambiguate it from the unrelated `actions`.
#### 0.30.0.3
* Use `json-schema 0.5.*`
#### 0.30.0.2
* Use `rest-stringmap == 0.2.*`
#### 0.30.0.1
* Allow `mtl == 2.2.*` and `transformers == 0.4.*`
## 0.30
* Use `Content-Disposition` to provide filenames for file responses.
This slightly changes the semantics of `FileO`: what used to be
interpreted as the file extension is now used for the whole file name.
* `Rest.Types.Container.StringMap` Has been replaced by `rest-stringmap`. This
changes the XML serialization format of multi part messages, the old format
was `` and the new one is
``.
## 0.29
* Add multi-delete handler. It is used on a DELETE to
`///` and is derived from the single delete handler.
* Don't put `Cache-Control: private` header on served files. This way
they can be cached by public proxies, e.g. cloudfront.
* Add `Show` instances for `Header`, `Param` and `Dict`.
* Renamed `mkMultiPutHandler` to `mkMultiHandler` in
`Rest.Driver.Routing`.
* Explicit exports in `Rest.Driver.Routing`, removing a lot of
private functions from the public interface.