8.3 KiB
The latest version of this document is on GitHub.
0.12.1
Bug fixes
0.12
Significant changes
-
servant-client servant-client-core Factored out of
servant-client
all the functionality that was independent of thehttp-client
backend. (#803 #821)If you have own combinators, you'll need to add an additional
m
argument inHasClient
,Client
andclientWithRoute
:-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 api
See
f777818e3c
for a real world example. -
servant-server Added
hoistServer
member to theHasServer
class, which isHasServer
specificenter
. (#804 #824)enter
isn't exported fromServant
module anymore. You can changeenter
tohoistServer
in a straight forward way. Unwrap natural transformation and add a api typeProxy
:-server = enter (NT nt) impl +server = hoistServer (Proxy :: Proxy MyApi) nt impl
If you have own combinators, you'll need to define a new method of
HasServer
class, for example:type ServerT (MyCombinator :> api) m = MyValue -> ServerT api m hoistServerWithContext _ pc nt s = hoistServerWithContext (Proxy :: Proxy api) pc nt . s
See
8ee3b63152
for a real world example. -
Add
Description
andSummary
combinators (#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 shouldn't affect you, except if you define your own infix operators for Servant type-level DSL.
Other changes
- servant-foreign Derive
Data
for all types (#809) - servant-docs Add authentication lenses (#787)
- servant-docs Generated markdown improvements (#813 #767 #790 #788)
- Add
addLinks
to 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'
andLink
accessors (#745 , #717 , #715) - Prepare for GHC-8.2 (#722)
- Add
HasLink AuthProtect
instance (#720) AllCTRender [] ()
TypeError
(useNoContent
) (#671)- Documentation improvements and typo fixes (#702 , #709 , #716 , #725 , #727)
0.10
Breaking changes
-
Use
NT
fromnatural-transformation
forEnter
(#616) -
Change to
MkLink (Verb ...) = Link
(previouslyURI
). To consumeLink
use itsToHttpApiData
instance orlinkURI
. (#527)
Other changes
-
Add
Servant.API.TypeLevel
module 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 -
Accept
class may accept multiple content-types.MimeUnrender
adopted 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
ToFromByteString
withTo/FromHttpApiData
forGetHeaders/BuildHeadersTo
- BACKWARDS INCOMPATIBLE: Moved
From/ToFormUrlEncoded
classes, which were renamed toFrom/ToForm
tohttp-api-data
0.8.1
- Add
CaptureAll
combinator. Captures all of the remaining segments in a URL. - Add
Servant.API.TypeLevel
module, 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
WithNamedConfig
combinator. - Add
HttpVersion
,IsSecure
,RemoteHost
andVault
combinators - Fix safeLink, so Header is not in fact required.
- Add more instances for (:<|>)
- Use
http-api-data
instead ofServant.Common.Text
- Remove matrix params.
- Add PlainText String MimeRender and MimeUnrender instances.
- Add new
Verbs
combinator, and make all existing and new verb combinators type synonyms of it. - Add
BasicAuth
combinator to support Basic authentication - Add generalized authentication support
0.4.2
- Fix missing cases for
Patch
insafeLink
0.4.1
- Allow whitespace after parsing JSON
- Stricter matching for
safeLink
forCapture
0.4
Delete
now is likeGet
,Post
,Put
, andPatch
and 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