Praxis v2.0.pre.1 Release Notes
Release Date: 2020-02-22 // over 4 years ago-
- 🚚 Bring over partial functionality from praxis-mapper and remove dependency on same
- Praxis::Mapper's ::Resource and ::SelectorGenerator are now included
- General cleanup and simplification
- 🚚 Bring over partial functionality from praxis-mapper and remove dependency on same
Previous changes from v0.21
-
- Protect against
MediaType
s that do not have any links defined. - 📄 More robust scanning of existing types when generating docs. Some types might have not been
properly reported in the
schemas
section of the JSON docs if they were only used somewhere deep in some other type or action hierarchy - 🏗 Build doc browser support for defining top-level home pages for types. Apps can achieve the override by registering templates that respond to the ‘main’ type (instead of the other existing ‘label’,’embedded’ and ‘standalone’ modes).
- ✨ Enhance doc browser to show header and location expectations on action responses that have them defined
- 👍 Allow Plugin registration without requiring config_key
- registration will select a default config_key based on the class name
- 📚 A new
documentation_url
global directive is exposed for authors to be able to indicate where documentation will be hosted.- If this is provided, the default validation handler will add a
documentation
key to the response pointing at a url that should correspond to the documentation for the resource the user was requesting. Praxis::Docs::LinkBuilder
can be used to generate these documentation urls from the praxis application.
- If this is provided, the default validation handler will add a
- 💅 You can now switch your doc browser to use HTML5 style urls (i.e.
/1.0/type/V1-MediaTypes-PriceFilter
instead of/index.html#/1.0/type/V1-MediaTypes-PriceFilter
). - ✂ Remove deprecated rake tasks.
- ✂ Remove some remaining inline styling in doc browser.
- ➕ Adds a
ExampleProvider.removeHandlersForKey
call. You can useExampleProvider.removeHandlersForKey('general')
to get rid of the default example if required. - 🛰 Make Traits accumulate block definitions for
params
,headers
andpayload
rather than overriding them. - Switch to lazy evaluation of
base_params
fromApiDefinition
to properly inherit them into the resources and their corresponding actions even before the application'sMediaTtypes
have been finalized. - Built the
MiddlewareApp
class to make it easy to run a Praxis app mounted as an intercepting middleware which will only forward requests down the stack if they didn't match any of its routes.- Note: it properly skips forwarding when 404s are purposedly returned by the application itself.
- Note2: it also respects the
X-Cascade=pass
conventions.
- Protect against