Documentation and client generation from rest definition.
- Upgrade to
- Fix encoding issue with String inputs in generated clients. Non-ASCII characters would be mangled. Regenerate your client code to fix this. Newly generated code with String inputs needs to depend on rest-client >= 0.5.2, or it will fail to build.
- Allow rest-core-0.39.
- Upgrade to
rest-core 0.38to add support for
- Don’t call global
Qif available. This was an experimental feature, and didn’t work well in practice, since it would fail if there was something else called
Qon the window. We’re not aware of anyone depending on
Q, but if you do, you need to wrap the results of all API calls in a call to Q.
- (revision) Allow
were written to the prototype of the API object, and in Node,
importing it again could cause mixups of this data. Now every
instantiation of the API is a new object. This should have no impact
on user code, unless you’re checking the API type with
instanceof, in which case it will now always return false.
- Fix linking of documentation resources (thanks Jan-Philip Loos)
- Docs: More exhaustive examples of JSON messages showing each possible node in the schema at least once.
- Docs: Make example popup scrollable.
- Remove dependency on hslogger.
- Allow base 4.8 and HStringTemplate 0.8 for GHC 7.10 compatibility.
- Haskell: Escape special characters in parameter names
- Allow Cabal 1.22.*.
- Allow semigroups 0.16.*
- Haskell: Fixes a bug where client generation for end points without defined output or errors would default to parsing errors as XML even though the accept header was text/json. It now parses the response as json.
When instantiating API object you can now optionally pass a
modifyRequestargument of type
RequestObject -> RequestObjectwhich is called before every request.
cookieJarinstance member is no longer available on sub resources, it can now only be accessed from the top-level api object. This is a breaking change for generated clients. It was a bad idea to use this to begin with since the cookie jar is shared across the entire api object.
requestlibrary to use generated clients. If you want access to the cookie jar use
- Allow haskell-src-exts 1.16.*
- Fix a bug where the generated Haskell client for a resource with a name that was a Haskell keyword would contain invalid code.
- Relax bounds on semigroups.
You don’t have to regenerate clients for this release, but it is strongly recommended!
Accept headers are now sent based on both the output and errors of an endpoint, previously none of the clients would handle an end point with different inputs and outputs properly.
responseproperty if the error response is valid JSON.
ECONNREFUSEDand other “top level” errors
- Now generates valid Ruby code again
- Expose modules Rest.Gen.Base.ActionInfo and Rest.Gen.Base.ApiTree again.
- Make test cases compile again.
Cabal == 1.16.*
- Abstracted generated code into rest-client, you should regenerate haskell clients
- haskell code generation is now done using
- When using module name rewrites their qualification are now also rewritten.
build-dependswhen generating cabal files
- Flattened module hierarchy,
json-schema 0.5.*and add
Eq, Showfor all types in
- Haskell: Nub generated imports
- Un-exposes internal modules so we don’t have to major bump on every change.
genNow accepts AST-like types instead of just strings to make it more obvious how to use it, see types in
- Make sure Identifiers are always imported when needed. This is a further improvement on the bugfix in rest-gen-0.11.
- rest-gen-0.12 did not always take arguments in generated methods into account, so the renamed qualification has been reverted for now.
- Haskell: Module rewrites such as
Data.Textnow produces qualified imports
import qualified Data.Text as Data.Textinstead of
import qualified Data.Text as Data.Text.Lazy. This prevents building against different versions of the same package that may have moved the internal module (as is the case with
text) from generating different clients.
- Bugfix: Haskell: Resources without a getter now generate identifier arguments for other end points
- Shuffles some internal (but exposed) functions around
aeson-utilsdependency in favor of
scientific >= 0.3.2
mtl == 2.2.*
Cabalupper bound to
handlers. The name of the generated functions is
- Escape reserved names in Haskell code generation.