updated changes;
[catagits/Catalyst-Action-REST.git] / Changes
CommitLineData
3ba4e173 1Revision history for {{$dist->name}}
801ec379 2
3ba4e173 3{{$NEXT}}
eb3ab200 4
3b3fd402 51.20 2015-10-29 15:28:27-05:00 America/Chicago
6
2058bd04 7 - Documentation fixes.
8 - Don't clobber some response headers if they are already set.
9
19cd07ec 101.19 2015-02-06 09:40:02-06:00 America/Chicago
11
2f47e474 12 - Make LWP a test dep instead of a hard dep (Fixes GH#3, thanks Alexander
13 Hartmaier for the report!)
1edd63a7 14 - Hard dep on JSON::MaybeXS (Fixes RT#101854, thanks Emmanuel Seyman for the
15 report and Karen Etheridge for help tracking down the cause!)
16
78f164df 171.18 2015-01-20 12:20:46-06:00 America/Chicago
18 - Fix tests on travisci so that Catalyst proper can run on travisci
19 (Thanks André Walker!)
20
eb3ab200 211.17 2014-10-23 19:58:46-05:00 America/Chicago
27829ab7 22 - Make 3xx status codes skip serialization when there is no data to serialize
ffef3497 23 (Thanks Jesse Sheidlower!)
c3d115c8 24
251.16 2014-09-12 13:21:43-05:00 America/Chicago
27829ab7 26 - Switch from JSON to JSON::MaybeXS to get a better choice of JSON parsers.
3ba4e173 27
0aceaa9b 281.15 2014-05-07 09:02:44-05:00 CST6CDT
29
27829ab7 30 - Added new status_see_other method for returning a 303 redirect.
31 - Added new status_moved method for returning a 301 redirect. (Matthew Keller)
0aceaa9b 32
9b5736d5 331.14 2013-12-27 15:32:19 America/Chicago
34
27829ab7 35 - Stop prompting for features at install time
da6b5a45 36
3ba4e173 371.13 2013-11-08 09:40:00 EST
7566d72f 38
27829ab7 39 - Fix tests to skip if YAML::Syck is not installed (Arthur Axel fREW Schmidt)
801ec379 40
3ba4e173 411.12 2013-09-03 13:00:00 EST
47c3e6b3 42
43 WARNING BACK COMPAT BREAKAGE FOLLOWS
44
27829ab7 45 Removed The YAML and HTML parser from the distro. You
47c3e6b3 46 should install these if you actually use them. They are listed as
47 optional dependencies going forward.
48
49 This is possibly a breaking change, but necessary for security and
50 considered acceptable since those formats have not generally
51 become preferred for web services.
52
53 In addition, the default de/serialization mappings for HTML and YAML
54 have been removed. You can add that back by adding the following to
55 you Configuration for the subclass of Catalyst::Controller::REST -
56
57 package Foo::Controller::Bar;
58
59 use Moose;
60 use namespace::autoclean;
61
62 BEGIN { extends 'Catalyst::Controller::REST' }
63 __PACKAGE__->config(
64 'map' => {
65 'text/html' => 'YAML::HTML',
66 'text/x-yaml' => 'YAML',
67 },
68 );
69
70 You should do this if you are using these de/serialization formats.
71
3ba4e173 721.11 2013-06-16 15:23:03 BST
73
27829ab7 74 - Fix infinite recursion in tests under Catalyst 5.90040
3ba4e173 75
761.10 2013-04-22 14:36:53 BST
77
27829ab7 78 - Use YAML rather than JSON in basic tests
e0323f6a 79
3ba4e173 801.09 2013-04-19 13:34:38 BST
81b9fff3 81
27829ab7 82 - Don't load Data::Serializer unnecessarily in tests
45d02f45 83
3ba4e173 841.08 2013-04-16 08:33:00 BST
1bb213fc 85
27829ab7 86 - Factor Data::Serializable into it's own dist to stop breakages.
1bb213fc 87
3ba4e173 88 If you use any of:
1bb213fc 89
3ba4e173 90 * Data::Dumper
91 * Data::Denter
92 * Data::Taxi
93 * Config::General
94 * PHP::Serialization
95
96 You'll need to install Catalyst-Action-Serialize-Data-Serializer and add the
97 appropriate lines to your controller config. Said lines may be:
1bb213fc 98
99 'text/x-data-dumper' => [ 'Data::Serializer', 'Data::Dumper' ],
100 'text/x-data-denter' => [ 'Data::Serializer', 'Data::Denter' ],
101 'text/x-data-taxi' => [ 'Data::Serializer', 'Data::Taxi' ],
102 'text/x-config-general' => [ 'Data::Serializer', 'Config::General' ],
103 'text/x-php-serialization' => [ 'Data::Serializer', 'PHP::Serialization' ],
104
3ba4e173 1051.07 2013-04-11 20:20:00 BST
106
27829ab7 107 - Don't serialize if a view is explicitly set.
3ba4e173 108
109 - If the controller sets the view in $c->stash->{current_view} or
110 $c->stash->{current_view_instance}, then it is explicitly requesting a
111 certain kind of serialization and C::A::Serialize shouldn't override
112 that.
113
27829ab7 114 - Remove Storable and FreezeThaw from the list
3ba4e173 115 of serialization methods offered by default, and
116 from the docs - they're totally unsafe :/
117
1181.06 2012-12-11 22:04:00 UTC
119
27829ab7 120 - Sort list of allowed methods. RT#81825
3ba4e173 121
1221.05 2012-07-02 20:13:00 BST
123
27829ab7 124 - Bugfix get_allowed_methods list:
3ba4e173 125 - include HEAD
126 - remove "not_implemented"
127
1281.04 2012-06-30 10:25:00 BST
129
27829ab7 130 - Bugfix to _dispatch_rest_method
3ba4e173 131
1321.03 2012-06-28 00:40:00 BST
133
27829ab7 134 - Expose _get_allowed_methods to the API (wreis)
3ba4e173 135
27829ab7 136 - Fix default OPTIONS handler: As the ->body is defined, then serialization
3ba4e173 137 won't happen and we don't get wrong responses. (wreis)
138
27829ab7 139 - Add default HEAD handler: auto dispatches to _GET method if it exists (wreis)
3ba4e173 140
1411.02 2012-06-05 22:23:00 BST
142
27829ab7 143 - Fix forwarded REST methods, e.g. foo_GET to be more
3ba4e173 144 correctly displayed as a forward in the stats info.
145
27829ab7 146 - Make public response building methods for errors
3ba4e173 147 _unsupported_media_type and _serialize_bad_request which
148 can be extended from an action-role to return custom
149 error response.
150
1511.01 2012-05-29 20:19:00 BST
152
27829ab7 153 - Add Catalyst::Action::Deserialize::JSON::XS
3ba4e173 154
27829ab7 155 - Fix JSON::XS useage to depend on JSON.pm v2.0, and rely on the
3ba4e173 156 fact that can be backed by XS code, by explicitly setting
157 $ENV{'PERL_JSON_BACKEND'} = 2
158
1591.00 2012-04-13 09:31:00 BST
160
27829ab7 161 - Repack without auto_include to stop Module::Install inlining
3ba4e173 162 Test::More without Test::Builder. RT#76524
163
1640.99 2012-02-28 09:09:00 UTC
165
27829ab7 166 - Repack with new Module::Install to stop depending on an unnecessary
3ba4e173 167 ExtUtils::MakeMaker version.
168
1690.98 2012-02-21 11:40:00 UTC
6e7da253 170
27829ab7 171 - More fixes as per last release.
6e7da253 172
3ba4e173 1730.97 2012-02-21 09:58:00 UTC
7b46eb07 174
27829ab7 175 - Fix test with latest Catalyst version which passes _log into
3ba4e173 176 requests.
04f96b73 177
3ba4e173 1780.96 2012-01-20 11:22:00 UTC
91bb5224 179
27829ab7 180 - Added fix for RT 63537 (from Gerv) and tests to check it.
6da8e448 181
3ba4e173 1820.95 2012-01-04 19:34:00 UTC
c8ca5f59 183
27829ab7 184 - Fix regex for JSONP parameter name to be able to include the . character
3ba4e173 185 in Catalyst::Action::Serialize::JSONP. RT#73741
c8ca5f59 186
27829ab7 187 - Add optional location parameter to status_accepted handler. RT#73691 (ghenry)
c8ca5f59 188
3ba4e173 1890.94 2011-12-09 08:35:00 UTC
3c4306f2 190
27829ab7 191 - Add 403 Forbidden and 302 Not Found status methods to
3ba4e173 192 Catalyst::Controller::REST (Caleb Cushing)
d1158d58 193
3ba4e173 1940.93 2011-10-12 11:37:00 America/Chicago
fcc4f3f2 195
27829ab7 196 - Add a "Callback" serializer/deserializer to allow for more customization in
3ba4e173 197 how the REST data is parsed/generated (bphillips)
fcc4f3f2 198
3ba4e173 1990.92 2011-10-01 11:04:00 BST
df5f9ffc 200
27829ab7 201 - Add a Catalyst::Action::DeserializeMultiPart, allowing one part of a multipart
3ba4e173 202 request to be deserialized as the REST data (allowing other parts to be used for
203 file uploads, for example) (bphillips)
3ed677b1 204
3ba4e173 2050.91 2011-08-04 14:37:21 Europe/Berlin
351f252f 206
27829ab7 207 - For the deserialization action class, make the HTTP methods it operates on
3ba4e173 208 configurable on a per-action level (plu, rafl).
1f22d6b3 209
3ba4e173 2100.90 2011-02-25 13:56:00 UTC
8aa1a2ee 211
27829ab7 212 - Remove test which is no longer applicable and fails in the latest Catalyst
3ba4e173 213 release.
f2d34339 214
3ba4e173 2150.89 2011-01-24 21:57:42 UTC
259c53c7 216
27829ab7 217 - All classes are now made immutable. (Dave Rolsky)
f51d80cd 218
27829ab7 219 - Added a Catalyst::Action::REST::ForBrowsers class. This will try to dispatch
3ba4e173 220 GET requests to a foo_GET_html method before trying foo_GET. (Dave Rolsky)
1c4b501b 221
3ba4e173 2220.88 2011-01-11 23:07:00 UTC
8894935c 223
27829ab7 224 - Fix documentation for overriding Serialize and Deserialize actions
3ba4e173 225 in Catalyst::Controller::REST.
04eaf278 226
27829ab7 227 - Avoid warning with empty response bodies and new Catalyst version
3ba4e173 228 (>= 5.80030)
48ff1e96 229
27829ab7 230 - Returning a body of '' is now possible - Catalyst::Action::Serialize
3ba4e173 231 acts like Catalyst::Action::RenderView (>= 0.16) by using the has_body
232 predicate in Catalyst::Response (>= 5.80030)
84b1ebe6 233
3ba4e173 2340.87 2010-11-03 19:46:00 UTC
d5acc73a 235
27829ab7 236 - Fix Request class role when used with new Moose and other request
3ba4e173 237 class roles.
355d4385 238
3ba4e173 2390.86 2010-09-01 23:14:00 BST
786c212f 240
27829ab7 241 - Add rest_serializer_json_options config key useable to set options
3ba4e173 242 like relaxed => 1 to be passed to the JSON serializer (Ton Voon)
786c212f 243
27829ab7 244 - Make Data::Dumper unserializer safer by using a Safe compartment (Ton Voon)
e527bba3 245
3ba4e173 2460.85 2010-05-13 10:09:19 Europe/Berlin
e527bba3 247
27829ab7 248 - Make Catalyst::Action::Serialize::View return directly rather than serializing
3ba4e173 249 a response for 3XX status codes. This stops back-compat breakage from the
250 previous change (in 0.84), whilst also allowing actual data serializers
251 to still handle 3XX.
ad46030d 252
27829ab7 253 - Fix docs in Catalyst::TraitFor::Request::REST::ForBrowsers. (RT#54983)
0fd45d2a 254
3ba4e173 2550.84 2010-05-06 09:27:56 BST
0fd45d2a 256
27829ab7 257 - Revert always using a trait rather than Catalyst::Request::REST to improve
3ba4e173 258 debug messages.
96eccfeb 259
27829ab7 260 - Add a status_multiple_choices helper method to the Controller base class.
96eccfeb 261
27829ab7 262 - Allow 3XX responses to be serialized.
3accd912 263
3ba4e173 2640.83 2010-02-08 22:17:12 UTC
5578f739 265
27829ab7 266 - Make it possible to deserialize a request with a DELETE method. This probably
3ba4e173 267 breaks 'strict' REST guidelines, but is useful for being able to delete multiple
268 resources from a single call by providing a batch delete method.
96a61a60 269
27829ab7 270 - Remove JSONP from the list of default serializers (RT#54336)
3ba4e173 271 Fix MANIFEST (RT#54408)
96a61a60 272
3ba4e173 2730.82 2010-02-04 22:31:57 UTC
8ff24288 274
27829ab7 275 - Integrated Catalyst::Request::REST::ForBrowsers as
3ba4e173 276 Catalyst::TraitFor::Request::ForBrowsers. (Dave Rolsky)
8ff24288 277
27829ab7 278 - Clarified docs so that they encourage the use of the request traits, rather
3ba4e173 279 than using Catalyst::Request::REST. (Dave Rolsky)
8ff24288 280
27829ab7 281 - When Catalyst::Action::REST or Controller::REST automatically add the trait,
3ba4e173 282 your request class will no longer end up getting set to
283 Catalyst::Request::REST. Instead, creates an anon class with the appropriate
284 role. (Dave Rolsky)
04675068 285
27829ab7 286 - Shut up log output from the tests. (Dave Rolsky)
04675068 287
27829ab7 288 - Added a $VERSION to every module, mostly to make sure that when people
3ba4e173 289 install Catalyst::Request::REST::ForBrowsers, they get the version in this
290 distro. (Dave Rolsky)
04675068 291
27829ab7 292 - Change Catalyst::Action::Serialize, Catalyst::Action::Deserialize and
3ba4e173 293 Catalyst::Action::SerializeBase to be more Moose like.
04675068 294
27829ab7 295 - Fix JSON and JSON::XS to encode_blessed. (fREW)
296 - Fix Catalyst::Action::Serialize to use objects instead of classes. (fREW)
297 - Fix doc nits. (RT#53780)
04675068 298
3ba4e173 2990.81 2010-01-14 20:56:00 UTC
890738ab 300
27829ab7 301 - Add a JSONP serialization type.
05009b91 302
3ba4e173 3030.80 2009-12-19 14:54:00 UTC
2b1751a1 304
27829ab7 305 - Convert all classes to Moose
2b1751a1 306
27829ab7 307 - Change Catalyst::Request::REST to be a mostly empty class, with
3ba4e173 308 all the functionality in Catalyst::TraitFor::Request::REST
26b59bcb 309
27829ab7 310 - Simplify _get_allowed_methods method (aristotle)
732d8f5f 311
27829ab7 312 - Rework serializer return so that serializers throw an exception in
3ba4e173 313 the case of issues serializing the data (hobbs).
4f7a48d1 314
3ba4e173 3150.79 2009-12-11 01:08:00 UTC
a400ef8b 316
27829ab7 317 - Cope with invalid (missing required q parameter) header like:
3ba4e173 318 application/json; charset="utf-8"
489ee3ed 319
27829ab7 320 - Fix documentation to not mention deprecated things and generally be
3ba4e173 321 in better style.
489ee3ed 322
27829ab7 323 - Make author information consistant and only in one module.
e1844cd9 324
3ba4e173 3250.78 2009-09-28 15:01:03 BST
a05bebdc 326
27829ab7 327 - Require Moose for the tests (RT#50066).
5ebf67a4 328
3ba4e173 3290.77 2009-08-27 02:21:09 BST
5bbe8fb2 330
27829ab7 331 - Allow dispatching to Catalyst Actions, for use with ActionClasses
3ba4e173 332 etc - fREW
d3f3a2ed 333
27829ab7 334 - Fix test if CATALYST_DEBUG environment variable is set
d3f3a2ed 335
3ba4e173 3360.76 2009-08-21 21:20:52 BST
f3394d8c 337
27829ab7 338 - Added two new status response helpers (202 no content and 410 gone),
3ba4e173 339 and tests - Franck Cuny
5ebf67a4 340
3ba4e173 3410.75 2009-08-17 14:07:41 BST
9eb6ca8b 342
27829ab7 343 - Fix optional test failures in catalyst-action-serialize-accept.t
344 - Added a serializer for JSON::XS
345 - Made test independent of YAML::Syck bugs (dandv)
4ee24376 346
3ba4e173 3470.74 2009-07-22 23:49:16 BST (t0m)
c42820ae 348
27829ab7 349 - Switch from NEXT to MRO::Compat (agladdish).
428ec4a2 350
27829ab7 351 - Add display of additional REST actions in the stats, and also fix a warning
3ba4e173 352 in Catalyst 5.80 when you forward to another action from inside an
353 action_FOO method (as it was confusing the stats).
428ec4a2 354
27829ab7 355 - POD fixes
356 - Catalyst::Action::REST no longer @ISA Catalyst or Catalyst::Controller.
357 - Change constructor to call next::method instead of SUPER::
358 - Change method used to find the application class to be more correct
f41ab757 359
3ba4e173 3600.73 2009-06-27 20:20:09 America/New_York (hdp)
546f2871 361
27829ab7 362 - Packaging fixes
546f2871 363
3ba4e173 3640.72 2009-06-25 14:52:29 America/New_York (hdp)
d1e10509 365
27829ab7 366 - Refresh Module::Install
db8bb647 367
3ba4e173 3680.71 2009-03-28 09:16:09 America/Los_Angeles (hdp)
665a446d 369
27829ab7 370 - Fix RT#44641, missing documented 'end' action
0566b5e4 371
3ba4e173 3720.70 2009-03-27 23:21:17 America/Los_Angeles (hdp)
0566b5e4 373
27829ab7 374 - Tests that use JSON were either not checking for the version or checking in a
375 - way that was a syntax error.
c4ab3598 376
3ba4e173 3770.69 2009-03-26 14:16:03 America/Los_Angeles (hdp)
cbb06078 378
27829ab7 379 - Fix RT#32342, deprecated config loses default map (hdp)
380 - Fix broken insertion of Catalyst::Request::REST for Action::REST (jshirley)
bb55dba1 381
3ba4e173 3820.68 2009-03-25 22:33:38 America/Los_Angeles (hdp)
8088a6f3 383
27829ab7 384 - Remove prompt for ancient and deprecated Data::Denter from Makefile.PL
385 - Remove Data::Dump, which was entirely unused
386 - Stop tests from dying with Catalyst 5.80
ef7fdb48 387
3ba4e173 3880.67 2009-03-25 21:59:59 America/Los_Angeles (hdp)
888f25e3 389
27829ab7 390 - (no changes from 0.67_01)
8b010556 391
3ba4e173 3920.67_01 2009-03-25 09:36:00 America/Los_Angeles (hdp)
7b8c5be2 393
27829ab7 394 - Fix RT#43840, improper app-level config handling
395 - Fix RT#42859, 'wrong' Catalyst dependency
396 - Fix RT#42025, stepping on custom request classes
3d38a43f 397
3ba4e173 3980.65 2008-08-20 10:42:00 America/Los_Angeles (jshirley)
b946af8e 399
27829ab7 400 - Fully revamped tests to work without any JSON support
401 - Final removal of JSON::Syck
402 - Special thanks to jgoulah for helping test this release
bc48916f 403
3ba4e173 4040.64 2008-08-13 08:55:00 America/Los_Angeles (jshirley)
2f7533ed 405
27829ab7 406 - New dist to fix issue with Module::Install
6023cdb2 407
3ba4e173 4080.63 2008-07-09 11:16:00 America/Los_Angeles (jshirley)
ebba5325 409
27829ab7 410 - Changing from JSON::Syck to JSON/JSON::XS
411 - Refactored tests to be more applicable to current state of affairs
df26b361 412
3ba4e173 4130.62 2008-07-02 07:53:00 America/Los_Angeles (jshirley)
832e768d 414
27829ab7 415 - Reshipping with current Module::Install included due to error reports
3ba4e173 416 about failed installs
d6fb033c 417
3ba4e173 4180.61 2008-06-30 12:28:00 America/Los_Angeles (jshirley)
9f16ba15 419
27829ab7 420 - Support official application/json and carp about text/x-json
d4611771 421
27829ab7 422 - Accepted patch from Luke Saunders for processing all accepted content types
bc343d3a 423
3ba4e173 4240.60 2008-01-03 17:23:58 America/Los_Angeles (adam)
425
27829ab7 426 - Updated my contact information.
3ba4e173 427
27829ab7 428 - Fixed RT#30498 - REST controller references Catalyst without
3ba4e173 429 loading it first.
430
27829ab7 431 - Fixed RT#32042 - Import of Params::Validate :all plays badly
3ba4e173 432 with subclasses that have their own validate()
433
27829ab7 434 - Fixed RT#30456 - Debug messages print even with debugging disabled
3ba4e173 435
27829ab7 436 - Fixed an issue where YAML::Syck versions 0.92 require $c->request->body to
3ba4e173 437 be stringified
438
27829ab7 439 - Updated the configuration specifiers to operate more in line with the way
7d5e38b4 440 Catalyst expects. Most notably component based configuration through
441 "Controller::RestClass" now works. "serialize" at the top level simply
442 is suggested defaults that all REST classes inherit.
bc343d3a 443
27829ab7 444 - Fixed 'default' serializer to set a valid Content-Type: header. Fixes
7d5e38b4 445 RT ticket 27949. Note that behavior has changed -- the default
446 serializer must now be specified as a content-type, not as a plugin
447 name. (dmo@roaringpenguin.com)
367b3ff4 448
3ba4e173 4490.41 2007-05-24 14:01:06 America/Los_Angeles (adam)
450
27829ab7 451 - Moved a bogus $self->class to $c->component($self->class)
3ba4e173 452
4530.40 2007-03-09 14:13:29 America/Los_Angeles (adam)
454
27829ab7 455 - Refactored the Content-Type negotiation to live in Catalyst::Request::REST. (drolsky)
456 - Added some useful debugging. (drolsky)
457 - Added a View serializer/deserializer, which simply calls the correct
458 - Catalyst view. ('text/html' => [ 'View', 'TT' ]) (claco, adam)
3ba4e173 459
4600.31 2006-12-06 00:45:02 America/Los_Angeles (adam)
461
27829ab7 462 - Fixed a bug where we would report a blank content-type negotiation.
463 - Added Data::Dump as a dependency.
3ba4e173 464
27829ab7 465 - Made the YAML::HTML view automatically append content-type=text/html on
3ba4e173 466 the resulting URLs.
467
4680.30 2006-12-03 12:24:16 America/Los_Angeles (adam)
469
27829ab7 470 - Updated the Makefile to support optional installation of the different
3ba4e173 471 Serialization formats.
472
27829ab7 473 - Renamed some of the test cases, since the execution order doesn't
3ba4e173 474 matter.
475
27829ab7 476 - Fixed things so that not having a Serialization module returns 415.
477 - Fixed things so that failure to Deserialize sends the proper status.
478 - Refactored the Plugin loading to Catalyst::Action::SerializeBase.
479 - Updated the Documentation.
3ba4e173 480
27829ab7 481 - Added a whole raft of serializers. (JSON, all the Data::Serializer
3ba4e173 482 supported ones, and XML::Simple)
483
27829ab7 484 - Added test cases.
3ba4e173 485
27829ab7 486 - Refactored the Catalyst::Action::REST dispatch, so that the default
3ba4e173 487 method is called before any _METHOD handlers. In addition, moved
488 the 405 Not Implemented handler to be foo_not_implemented, instead
489 of the default sub. (daisuke++ pointed out the inconsistency and
490 provided a patch, and I added the foo_not_implemented support)
491
27829ab7 492 - Added in automated OPTIONS handler, which constructs the allow
3ba4e173 493 header for you, just like the 405 handler. Can be overridden
494 with a normal _METHOD sub.
495
27829ab7 496 - Refactored Test::Rest, so that it uses closures to create the
3ba4e173 497 very similar $test->method() subs.
498
27829ab7 499 - Added tests for Catalyst::Action::REST.
3ba4e173 500
5010.2 2006-11-30 17:14:51 America/Los_Angeles (adam)
502
27829ab7 503 - Added documentation patch from Daisuke Maki (daisuke@endeworks.jp)
504 - Added dependency patch from Daisuke Maki (daisuke@endeworks.jp)
3ba4e173 505
5060.1 2006-11-19 16:24:20 America/Los_Angeles (adam)
507
27829ab7 508 - Added status_accepted (Code 202)
509 - Added a first pass at documentation.
510 - Added in Test Suite
511 - Created Catalyst::Action::Serialize and Catalyst::Action::Deserialize
512 - Added Data::Serializer actions
513 - Added status_created helper method
514 - Added more status_ helpers
3ba4e173 515
27829ab7 516 - Converted error helpers to return an object instead of plain-text. It's
3ba4e173 517 a more consistent model than a text/plain error message.
518
27829ab7 519 - Added logging to 4xx status handlers
bdc54939 520