Changelog for servant-0.12
The latest version of this document is on GitHub.
0.12
Significant changes
-
servant-client servant-client-core Factored out of
servant-clientall the functionality that was independent of thehttp-clientbackend. (#803 #821)If you have own combinators, you'll need to add an additional
margument inHasClient,ClientandclientWithRoute:-class HasClient api - type Client (api :: *) :: * - clientWithRoute :: Proxy api -> Req -> Client api +class HasClient m api + type Client (m :: * -> *) (api :: *) :: * + clientWithRoute :: Proxy m -> Proxy api -> Request -> Client m apiSee https://github.com/haskell-servant/servant-auth/pull/67/commits/f777818e3cc0fa3ed2346baff8328e96d62b1790 for a real world example.
-
servant-server Added
hoistServermember to theHasServerclass, which isHasServerspecificenter. (#804 #824)enterisn't exported fromServantmodule anymore. You can changeentertohoistServerin a straight forward way. Unwrap natural transformation and add a api typeProxy:-server = enter (NT nt) impl +server = hoistServer (Proxy :: Proxy MyApi) nt implIf you have own combinators, you'll need to define a new method of
HasServerclass, for example:type ServerT (MyCombinator :> api) m = MyValue -> ServerT api m hoistServerWithContext _ pc nt s = hoistServerWithContext (Proxy :: Proxy api) pc nt . sSee https://github.com/haskell-servant/servant-auth/pull/67/commits/8ee3b6315247ac076516213fd7cfcdbfdb583ac9 for a real world example.
-
Add
DescriptionandSummarycombinators (#767)It's possible to annotate endpoints with free form text. This information is used by e.g. by
servant-swagger, see screenshot in https://github.com/phadej/servant-swagger-ui -
Lower
:>and:<|>infix precedence to 4 and 3 respectively (#761)This should affect you, except if you define your own infix operators for Servant type-level DSL.
Other changes
- servant-foreign Derive
Datafor all types (#809) - servant-docs Add authentication lenses (#787)
- servant-docs Generated markdown improvements (#813 #767 #790 #788)
- Add
addLinksto generate all links for unnested APIs. (#851) - Allow newest dependencies (#772 #842)
- Documentation improvements and typo fixes (#757 #771 #775 #790 #791 #806)
- Development process improvements (#764 #839)
0.11
Breaking changes
Other changes
- Add a type representing an empty API (#753)
- Add
linkURI'andLinkaccessors (#745 , #717 , #715) - Prepare for GHC-8.2 (#722)
- Add
HasLink AuthProtectinstance (#720) AllCTRender [] ()TypeError(useNoContent) (#671)- Documentation improvements and typo fixes (#702 , #709 , #716 , #725 , #727)
0.10
Breaking changes
-
Use
NTfromnatural-transformationforEnter(#616) -
Change to
MkLink (Verb ...) = Link(previouslyURI). To consumeLinkuse itsToHttpApiDatainstance orlinkURI. (#527)
Other changes
-
Add
Servant.API.TypeLevelmodule with type families to work with API types. (#345 , #305) -
Default JSON content type change to
application/json;charset=utf-8. (#263) Related browser bugs: Chromium and Firefox -
Acceptclass may accept multiple content-types.MimeUnrenderadopted as well. (#613 , #615)
0.9.1
- Added 'noHeader' function for not adding response headers.
0.9
- Added Eq, Show, Read, Generic and Ord instances to IsSecure
- BACKWARDS INCOMPATIBLE: replace use of
ToFromByteStringwithTo/FromHttpApiDataforGetHeaders/BuildHeadersTo - BACKWARDS INCOMPATIBLE: Moved
From/ToFormUrlEncodedclasses, which were renamed toFrom/ToFormtohttp-api-data
0.8.1
- Add
CaptureAllcombinator. Captures all of the remaining segments in a URL. - Add
Servant.API.TypeLevelmodule, with frequently used type-level functionaliy.
0.8
- Minor fixes, documentation changes and cabal tweaks
0.7.1
- Add module
Servant.Utils.Enter(https://github.com/haskell-servant/servant/pull/478) - Allow to set the same header multiple times in responses.
0.5
- Add
WithNamedConfigcombinator. - Add
HttpVersion,IsSecure,RemoteHostandVaultcombinators - Fix safeLink, so Header is not in fact required.
- Add more instances for (:<|>)
- Use
http-api-datainstead ofServant.Common.Text - Remove matrix params.
- Add PlainText String MimeRender and MimeUnrender instances.
- Add new
Verbscombinator, and make all existing and new verb combinators type synonyms of it. - Add
BasicAuthcombinator to support Basic authentication - Add generalized authentication support
0.4.2
- Fix missing cases for
PatchinsafeLink
0.4.1
- Allow whitespace after parsing JSON
- Stricter matching for
safeLinkforCapture
0.4
Deletenow is likeGet,Post,Put, andPatchand returns a response body- Multiple content-type/accept support for all the relevant combinators
- Provide JSON, PlainText, OctetStream and FormUrlEncoded content types out of the box
- Type-safe link generation to API endpoints
- Support for the PATCH HTTP method
- Removed the home-made QuasiQuote for writing API types in a more human-friendly format until we come up with a better design for it
- Make most if not all of the haddock code examples run through doctest
- Some general code cleanup
- Add response headers