This new release of BedSheet doesn't add any amazing new features (would that be possible!?) but it does groom and tidy what's already there. Here are a summary of changes:
Routes can takeany Response Object
Routing http requests to service methods is powerful, but often you just want simple things like:
redirect one url to another, or
return a bit of place holder text
So now Routes let you do this - by accepting any response object in the ctor. Should the Route be matched, the response object is returned for further processing.
Re-jigged Err handling
Internally, the pipeline flow of Errs has changed. For starters, Errs are no longer converted into HttpStatus 500 objects for further processing (which was a bit eager).
ErrProcessors now work in a similar fashion to HttpStatusProcessors where BedSheet provides a (configurable) default if no other processor could be found.
These changes make it easier to set your own, custom, Err page. For now you only contribute an ErrProcessor; you don't have to override one.
Added service to render the defaultBedSheet pages.
If you create your own Err page, sometimes it's still nice to render the default (verbose) BedSheet Err page; especially in a development environment. The addition of this service lets you do this.
That is, included, not enabled! You need to configure where the logs should be saved before it's enabled.
Logging HTTP requests is common practice and it shouldn't be difficult to set up. Having to manually add the logging filter to the HTTP Pipeline seemed a step too far... so now you don't!
Removed non-core functionality
Gone are the IE Cache Busting Ajax Filter and the Cross Origin Resource Sharing (CORS) Handler. (I'll blog about these if there's interest.)
Gone is the Route Matching service. This allowed you to contribute Objs other than Route to the Routes service. This largely existed to facilitate draft Routes but, given a Route may now take any Response object, this extra layer of redirection is not needed. (Don't worry afBedSheetDraft has been updated and still works with BedSheet 1.2!)
It's all about removing clutter from the API and ensuring BedSheet does what it does best - being the middleman for HTTP requests.
Groomed API Documentation
To make it easier for beginners to understand how to use each class / mixin / service.
SlimerDude Wed 18 Dec 2013
BedSheet v1.2 Released!
BedSheet is a framework for delivering web applications.
Built on top of afIoc and Wisp, BedSheet is concerned with providing a rich mechanism for the routing and delivery of content over HTTP.
fanr install -r http://repo.status302.com/fanr/ afBedSheet
This new release of BedSheet doesn't add any amazing new features (would that be possible!?) but it does groom and tidy what's already there. Here are a summary of changes:
Routes can takeany Response Object
Routing http requests to service methods is powerful, but often you just want simple things like:
So now Routes let you do this - by accepting any response object in the ctor. Should the Route be matched, the response object is returned for further processing.
Re-jigged Err handling
Internally, the pipeline flow of Errs has changed. For starters, Errs are no longer converted into
HttpStatus
500 objects for further processing (which was a bit eager).ErrProcessors
now work in a similar fashion toHttpStatusProcessors
where BedSheet provides a (configurable) default if no other processor could be found.These changes make it easier to set your own, custom, Err page. For now you only contribute an
ErrProcessor
; you don't have to override one.Added service to render the defaultBedSheet pages.
If you create your own Err page, sometimes it's still nice to render the default (verbose) BedSheet Err page; especially in a development environment. The addition of this service lets you do this.
Added dependency onIocEnv
Verbose Err pages are only rendered in non-production environments, which necessitated the inclusion of this handy little utility library.
HttpRequestLogFilter included by default
That is, included, not enabled! You need to configure where the logs should be saved before it's enabled.
Logging HTTP requests is common practice and it shouldn't be difficult to set up. Having to manually add the logging filter to the HTTP Pipeline seemed a step too far... so now you don't!
Removed non-core functionality
Gone are the
IE Cache Busting Ajax Filter
and theCross Origin Resource Sharing (CORS) Handler
. (I'll blog about these if there's interest.)Gone is the Route Matching service. This allowed you to contribute Objs other than
Route
to theRoutes
service. This largely existed to facilitate draft Routes but, given aRoute
may now take any Response object, this extra layer of redirection is not needed. (Don't worry afBedSheetDraft has been updated and still works with BedSheet 1.2!)It's all about removing clutter from the API and ensuring BedSheet does what it does best - being the middleman for HTTP requests.
Groomed API Documentation
To make it easier for beginners to understand how to use each class / mixin / service.
Have fun!
-- Read BedSheet v1.2 Released! on Fantom-Factory