rest-gen
Documentation and client generation from rest definition.
| Version on this page: | 0.19.0.3 | 
| LTS Haskell 10.10: | 0.20.0.1 | 
| Stackage Nightly 2017-12-24: | 0.20.0.1 | 
| Latest on Hackage: | 0.20.0.3 | 
rest-gen-0.19.0.3@sha256:8c80a18316e7dda340fecfefc7e05c93d0c1a6aa788335aeb8c14266a1cc1c44,2447Module documentation for 0.19.0.3
Documentation and client generation from rest definition.
Changes
Changelog
0.19.0.3
- Allow rest-core-0.39.
 
0.19.0.2
- Upgrade to 
rest-core 0.38to add support forRawJson(AndXml)(I/O). 
0.19.0.1
- Allow 
haskell-src-exts 1.17.*. 
0.19.0.0
- 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 calledQon the window. We’re not aware of anyone depending onQ, but if you do, you need to wrap the results of all API calls in a call to Q. 
0.18.0.0
- Javascript: postfix reserved words with an underscore. This is a breaking change for javascript clients, since the generated API code will change, so callers might have to be updated. All functions that match one of the reserved words from this list will have to be updated with a trailing underscore.
 - (revision) Allow 
aeson-0.10.*. 
0.17.1.3
- Javascript: generate new API instance every time. Some properties
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. 
0.17.1.2
- Javascript: fix rare crash in error path.
 - Allow 
HUnit 1.3.* - Allow 
process 1.3.*. 
0.17.1.1
- JavaScript/NodeJS: Use the received content-type instead of the accept header to decide whether to parse json.
 - Allow 
vector 0.11.* 
0.17.1
- Expose 
Rest.Gen.Base.ActionInfo.Ident 
0.17.0.6
- Fix linking of documentation resources (thanks Jan-Philip Loos)
 
0.17.0.5
- Allow 
aeson 0.9.* 
0.17.0.4
- Allow 
rest-core 0.36.* 
0.17.0.3
- Allow 
tagged 0.8.* 
0.17.0.2
- Allow 
filepath 1.4.*. 
0.17.0.1
- Allow 
blaze-html 0.8.*. 
0.17.0.0
- Docs: More exhaustive examples of JSON messages showing each possible node in the schema at least once.
 - Docs: Make example popup scrollable.
 
0.16.1.8
- Remove dependency on hslogger.
 
0.16.1.7
- Allow base 4.8 and HStringTemplate 0.8 for GHC 7.10 compatibility.
 
0.16.1.6
- Bump 
rest-core. 
0.16.1.5
- Haskell: Escape special characters in parameter names
 
0.16.1.4
- Allow Cabal 1.22.*.
 
0.16.1.3
- Allow semigroups 0.16.*
 
0.16.1.2
- JavaScript: Add support for webpack (and any other preprocessor that tries to import all 
requirefunction calls) 
0.16.1.1
- 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.
 
0.16.1
JavaScript
- 
When instantiating API object you can now optionally pass a
modifyRequestargument of typeRequestObject -> RequestObjectwhich is called before every request. - 
NodeJS: The
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. 
0.16.0.4
- JavaScript: Minor simplification in the template.
 
0.16.0.3
- JavaScript/node.js: Each instance of a client now uses its own cookie jar automatically. You no longer need to depend on the 
requestlibrary to use generated clients. If you want access to the cookie jar useapi.cookieJar. 
0.16.0.2
- Allow haskell-src-exts 1.16.*
 
0.16.0.1
- 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.
 
0.16
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.
 - 
JavaScript/node.js: Error objects now contain a JSON
responseproperty if the error response is valid JSON. 
0.15.0.3
- Bump 
rest-typesandrest-core 
0.15.0.2
- Allow 
json-schema 0.7.* 
0.15.0.1
- JavaScript/node.js: Fixed error handling for 
ECONNREFUSEDand other “top level” errors 
0.15
- JavaScript/node.js: Clients now use and require Q promises
 - JavaScript/web: Will now use Q if available, and otherwise return the normal jQuery objects
 
Bugfixes:
- JavaScript: Fix propagation of URLs to secure end points
 
0.14.2
- Generated JavaScript now also works as a Node module
 - JavaScript constructors are now named properly instead of “constrWrapper”
 - Now generates valid Ruby code again
 
0.14.1
- Expose modules Rest.Gen.Base.ActionInfo and Rest.Gen.Base.ApiTree again.
 - Make test cases compile again.
 
Revisions
- Allow 
Cabal == 1.16.* 
0.14
- Abstracted generated code into rest-client, you should regenerate haskell clients
 - haskell code generation is now done using 
haskell-src-exts - When using module name rewrites their qualification are now also rewritten.
 - Add 
hs-source-dirsandbuild-dependswhen generating cabal files - Moved 
Rest.Gen.Docs.Happstacktorest-happstack:Rest.Driver.Happstack.Docs - Expose 
Rest.Gen.Base - Flattened module hierarchy, 
Rest.Gen.Haskell.Generateis nowRest.Gen.Haskelletc. 
0.13.1.2
- Use 
json-schema 0.5.*and addshowExamplecases forMapandAny 
0.13.1.1
- Allow 
attoparsec 0.12.* 
0.13.1
- Derive 
Eq, Showfor all types inRest.Gen.Types - Haskell: Nub generated imports
 
0.13
Breaking changes:
- 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 inRest.Gen.Types
Bugfixes:
- 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.
 
0.12
- Haskell: Module rewrites such as 
Data.Text.Internal->Data.Textnow produces qualified importsimport qualified Data.Text as Data.Textinstead ofimport 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 withtext) from generating different clients. 
0.11
- Bugfix: Haskell: Resources without a getter now generate identifier arguments for other end points
 - Shuffles some internal (but exposed) functions around
 
0.10.0.4
- Drops 
aeson-utilsdependency in favor ofscientific >= 0.3.2 
0.10.0.3
- Allow 
mtl == 2.2.* 
0.10.0.1
- Bump 
Cabalupper bound to< 1.22 
0.10
- Generate documentation, Javascript and Haskell code for multi-delete
handlers. The name of the generated functions is 
removeManyorremoveManyBy<id>. - Escape reserved names in Haskell code generation.