Added an optional mode for RFC 7231 compliance. The Content-Type header is used to...
[catagits/Catalyst-Action-REST.git] / Changes
1 Revision history for {{$dist->name}}
2
3 {{$NEXT}}
4
5 1.20      2015-10-29 15:28:27-05:00 America/Chicago
6
7  - Documentation fixes.
8  - Don't clobber some response headers if they are already set.
9
10 1.19      2015-02-06 09:40:02-06:00 America/Chicago
11
12  - Make LWP a test dep instead of a hard dep (Fixes GH#3, thanks Alexander
13    Hartmaier for the report!)
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
17 1.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
21 1.17      2014-10-23 19:58:46-05:00 America/Chicago
22  - Make 3xx status codes skip serialization when there is no data to serialize
23    (Thanks Jesse Sheidlower!)
24
25 1.16      2014-09-12 13:21:43-05:00 America/Chicago
26  - Switch from JSON to JSON::MaybeXS to get a better choice of JSON parsers.
27
28 1.15      2014-05-07 09:02:44-05:00 CST6CDT
29
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)
32
33 1.14      2013-12-27 15:32:19 America/Chicago
34
35  - Stop prompting for features at install time
36
37 1.13  2013-11-08 09:40:00 EST
38
39  - Fix tests to skip if YAML::Syck is not installed (Arthur Axel fREW Schmidt)
40
41 1.12  2013-09-03 13:00:00 EST
42
43  WARNING BACK COMPAT BREAKAGE FOLLOWS
44
45  Removed The YAML and HTML parser from the distro.  You
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
72 1.11  2013-06-16 15:23:03 BST
73
74  - Fix infinite recursion in tests under Catalyst 5.90040
75
76 1.10  2013-04-22 14:36:53 BST
77
78  - Use YAML rather than JSON in basic tests
79
80 1.09  2013-04-19 13:34:38 BST
81
82  - Don't load Data::Serializer unnecessarily in tests
83
84 1.08  2013-04-16 08:33:00 BST
85
86  - Factor Data::Serializable into it's own dist to stop breakages.
87
88      If you use any of:
89
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:
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
105 1.07  2013-04-11 20:20:00 BST
106
107  - Don't serialize if a view is explicitly set.
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
114  - Remove Storable and FreezeThaw from the list
115    of serialization methods offered by default, and
116    from the docs - they're totally unsafe :/
117
118 1.06  2012-12-11 22:04:00 UTC
119
120  - Sort list of allowed methods. RT#81825
121
122 1.05  2012-07-02 20:13:00 BST
123
124  - Bugfix get_allowed_methods list:
125     - include HEAD
126     - remove "not_implemented"
127
128 1.04  2012-06-30 10:25:00 BST
129
130  - Bugfix to _dispatch_rest_method
131
132 1.03  2012-06-28 00:40:00 BST
133
134  - Expose _get_allowed_methods to the API (wreis)
135
136  - Fix default OPTIONS handler: As the ->body is defined, then serialization
137    won't happen and we don't get wrong responses. (wreis)
138
139  - Add default HEAD handler: auto dispatches to _GET method if it exists (wreis)
140
141 1.02  2012-06-05 22:23:00 BST
142
143  - Fix forwarded REST methods, e.g. foo_GET to be more
144    correctly displayed as a forward in the stats info.
145
146  - Make public response building methods for errors
147    _unsupported_media_type and _serialize_bad_request which
148    can be extended from an action-role to return custom
149    error response.
150
151 1.01  2012-05-29 20:19:00 BST
152
153  - Add Catalyst::Action::Deserialize::JSON::XS
154
155  - Fix JSON::XS useage to depend on JSON.pm v2.0, and rely on the
156    fact that can be backed by XS code, by explicitly setting
157    $ENV{'PERL_JSON_BACKEND'} = 2
158
159 1.00  2012-04-13 09:31:00 BST
160
161  - Repack without auto_include to stop Module::Install inlining
162    Test::More without Test::Builder. RT#76524
163
164 0.99  2012-02-28 09:09:00 UTC
165
166  - Repack with new Module::Install to stop depending on an unnecessary
167    ExtUtils::MakeMaker version.
168
169 0.98  2012-02-21 11:40:00 UTC
170
171  - More fixes as per last release.
172
173 0.97  2012-02-21 09:58:00 UTC
174
175  - Fix test with latest Catalyst version which passes _log into
176    requests.
177
178 0.96  2012-01-20 11:22:00 UTC
179
180  - Added fix for RT 63537 (from Gerv) and tests to check it.
181
182 0.95  2012-01-04 19:34:00 UTC
183
184  - Fix regex for JSONP parameter name to be able to include the . character
185    in Catalyst::Action::Serialize::JSONP. RT#73741
186
187  - Add optional location parameter to status_accepted handler. RT#73691 (ghenry)
188
189 0.94  2011-12-09 08:35:00 UTC
190
191  - Add 403 Forbidden and 302 Not Found status methods to
192    Catalyst::Controller::REST (Caleb Cushing)
193
194 0.93  2011-10-12 11:37:00 America/Chicago
195
196  - Add a "Callback" serializer/deserializer to allow for more customization in
197    how the REST data is parsed/generated (bphillips)
198
199 0.92  2011-10-01 11:04:00 BST
200
201  - Add a Catalyst::Action::DeserializeMultiPart, allowing one part of a multipart
202    request to be deserialized as the REST data (allowing other parts to be used for
203    file uploads, for example) (bphillips)
204
205 0.91  2011-08-04 14:37:21 Europe/Berlin
206
207  - For the deserialization action class, make the HTTP methods it operates on
208    configurable on a per-action level (plu, rafl).
209
210 0.90  2011-02-25 13:56:00 UTC
211
212  - Remove test which is no longer applicable and fails in the latest Catalyst
213    release.
214
215 0.89  2011-01-24 21:57:42 UTC
216
217  - All classes are now made immutable. (Dave Rolsky)
218
219  - Added a Catalyst::Action::REST::ForBrowsers class. This will try to dispatch
220    GET requests to a foo_GET_html method before trying foo_GET. (Dave Rolsky)
221
222 0.88  2011-01-11 23:07:00 UTC
223
224  - Fix documentation for overriding Serialize and Deserialize actions
225    in Catalyst::Controller::REST.
226
227  - Avoid warning with empty response bodies and new Catalyst version
228    (>= 5.80030)
229
230  - Returning a body of '' is now possible - Catalyst::Action::Serialize
231    acts like Catalyst::Action::RenderView (>= 0.16) by using the has_body
232    predicate in Catalyst::Response (>= 5.80030)
233
234 0.87  2010-11-03 19:46:00 UTC
235
236  - Fix Request class role when used with new Moose and other request
237    class roles.
238
239 0.86  2010-09-01 23:14:00 BST
240
241  - Add rest_serializer_json_options config key useable to set options
242    like relaxed => 1 to be passed to the JSON serializer (Ton Voon)
243
244  - Make Data::Dumper unserializer safer by using a Safe compartment (Ton Voon)
245
246 0.85  2010-05-13 10:09:19 Europe/Berlin
247
248  - Make Catalyst::Action::Serialize::View return directly rather than serializing
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.
252
253  - Fix docs in Catalyst::TraitFor::Request::REST::ForBrowsers. (RT#54983)
254
255 0.84  2010-05-06 09:27:56 BST
256
257  - Revert always using a trait rather than Catalyst::Request::REST to improve
258    debug messages.
259
260  - Add a status_multiple_choices helper method to the Controller base class.
261
262  - Allow 3XX responses to be serialized.
263
264 0.83  2010-02-08 22:17:12 UTC
265
266  - Make it possible to deserialize a request with a DELETE method. This probably
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.
269
270  - Remove JSONP from the list of default serializers (RT#54336)
271    Fix MANIFEST (RT#54408)
272
273 0.82  2010-02-04 22:31:57 UTC
274
275  - Integrated Catalyst::Request::REST::ForBrowsers as
276    Catalyst::TraitFor::Request::ForBrowsers. (Dave Rolsky)
277
278  - Clarified docs so that they encourage the use of the request traits, rather
279    than using Catalyst::Request::REST. (Dave Rolsky)
280
281  - When Catalyst::Action::REST or Controller::REST automatically add the trait,
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)
285
286  - Shut up log output from the tests. (Dave Rolsky)
287
288  - Added a $VERSION to every module, mostly to make sure that when people
289    install Catalyst::Request::REST::ForBrowsers, they get the version in this
290    distro. (Dave Rolsky)
291
292  - Change Catalyst::Action::Serialize, Catalyst::Action::Deserialize and
293    Catalyst::Action::SerializeBase to be more Moose like.
294
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)
298
299 0.81  2010-01-14 20:56:00 UTC
300
301  - Add a JSONP serialization type.
302
303 0.80  2009-12-19 14:54:00 UTC
304
305  - Convert all classes to Moose
306
307  - Change Catalyst::Request::REST to be a mostly empty class, with
308    all the functionality in Catalyst::TraitFor::Request::REST
309
310  - Simplify _get_allowed_methods method (aristotle)
311
312  - Rework serializer return so that serializers throw an exception in
313    the case of issues serializing the data (hobbs).
314
315 0.79  2009-12-11 01:08:00 UTC
316
317  - Cope with invalid (missing required q parameter) header like:
318    application/json; charset="utf-8"
319
320  - Fix documentation to not mention deprecated things and generally be
321    in better style.
322
323  - Make author information consistant and only in one module.
324
325 0.78  2009-09-28 15:01:03 BST
326
327  - Require Moose for the tests (RT#50066).
328
329 0.77  2009-08-27 02:21:09 BST
330
331  - Allow dispatching to Catalyst Actions, for use with ActionClasses
332    etc - fREW
333
334  - Fix test if CATALYST_DEBUG environment variable is set
335
336 0.76  2009-08-21 21:20:52 BST
337
338  - Added two new status response helpers (202 no content and 410 gone),
339    and tests - Franck Cuny
340
341 0.75  2009-08-17 14:07:41 BST
342
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)
346
347 0.74  2009-07-22 23:49:16 BST (t0m)
348
349  - Switch from NEXT to MRO::Compat (agladdish).
350
351  - Add display of additional REST actions in the stats, and also fix a warning
352    in Catalyst 5.80 when you forward to another action from inside an
353    action_FOO method (as it was confusing the stats).
354
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
359
360 0.73  2009-06-27 20:20:09 America/New_York (hdp)
361
362  - Packaging fixes
363
364 0.72  2009-06-25 14:52:29 America/New_York (hdp)
365
366  - Refresh Module::Install
367
368 0.71  2009-03-28 09:16:09 America/Los_Angeles (hdp)
369
370  - Fix RT#44641, missing documented 'end' action
371
372 0.70  2009-03-27 23:21:17 America/Los_Angeles (hdp)
373
374  - Tests that use JSON were either not checking for the version or checking in a
375  - way that was a syntax error.
376
377 0.69  2009-03-26 14:16:03 America/Los_Angeles (hdp)
378
379  - Fix RT#32342, deprecated config loses default map (hdp)
380  - Fix broken insertion of Catalyst::Request::REST for Action::REST (jshirley)
381
382 0.68  2009-03-25 22:33:38 America/Los_Angeles (hdp)
383
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
387
388 0.67  2009-03-25 21:59:59 America/Los_Angeles (hdp)
389
390  - (no changes from 0.67_01)
391
392 0.67_01  2009-03-25 09:36:00 America/Los_Angeles (hdp)
393
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
397
398 0.65  2008-08-20 10:42:00 America/Los_Angeles (jshirley)
399
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
403
404 0.64  2008-08-13 08:55:00 America/Los_Angeles (jshirley)
405
406  - New dist to fix issue with Module::Install
407
408 0.63  2008-07-09 11:16:00 America/Los_Angeles (jshirley)
409
410  - Changing from JSON::Syck to JSON/JSON::XS
411  - Refactored tests to be more applicable to current state of affairs
412
413 0.62  2008-07-02 07:53:00 America/Los_Angeles (jshirley)
414
415  - Reshipping with current Module::Install included due to error reports
416    about failed installs
417
418 0.61  2008-06-30 12:28:00 America/Los_Angeles (jshirley)
419
420  - Support official application/json and carp about text/x-json
421
422  - Accepted patch from Luke Saunders for processing all accepted content types
423
424 0.60  2008-01-03 17:23:58 America/Los_Angeles (adam)
425
426  - Updated my contact information.
427
428  - Fixed RT#30498 - REST controller references Catalyst without
429    loading it first.
430
431  - Fixed RT#32042 - Import of Params::Validate :all plays badly
432    with subclasses that have their own validate()
433
434  - Fixed RT#30456 - Debug messages print even with debugging disabled
435
436  - Fixed an issue where YAML::Syck versions 0.92 require $c->request->body to
437    be stringified
438
439  - Updated the configuration specifiers to operate more in line with the way
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.
443
444  - Fixed 'default' serializer to set a valid Content-Type: header.  Fixes
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)
448
449 0.41  2007-05-24 14:01:06 America/Los_Angeles (adam)
450
451  - Moved a bogus $self->class to $c->component($self->class)
452
453 0.40  2007-03-09 14:13:29 America/Los_Angeles (adam)
454
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)
459
460 0.31  2006-12-06 00:45:02 America/Los_Angeles (adam)
461
462  - Fixed a bug where we would report a blank content-type negotiation.
463  - Added Data::Dump as a dependency.
464
465  - Made the YAML::HTML view automatically append content-type=text/html on
466    the resulting URLs.
467
468 0.30  2006-12-03 12:24:16 America/Los_Angeles (adam)
469
470  - Updated the Makefile to support optional installation of the different
471    Serialization formats.
472
473  - Renamed some of the test cases, since the execution order doesn't
474    matter.
475
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.
480
481  - Added a whole raft of serializers. (JSON, all the Data::Serializer
482    supported ones, and XML::Simple)
483
484  - Added test cases.
485
486  - Refactored the Catalyst::Action::REST dispatch, so that the default
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
492  - Added in automated OPTIONS handler, which constructs the allow
493    header for you, just like the 405 handler.  Can be overridden
494    with a normal _METHOD sub.
495
496  - Refactored Test::Rest, so that it uses closures to create the
497    very similar $test->method() subs.
498
499  - Added tests for Catalyst::Action::REST.
500
501 0.2  2006-11-30 17:14:51 America/Los_Angeles (adam)
502
503  - Added documentation patch from Daisuke Maki (daisuke@endeworks.jp)
504  - Added dependency patch from Daisuke Maki (daisuke@endeworks.jp)
505
506 0.1  2006-11-19 16:24:20 America/Los_Angeles (adam)
507
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
515
516  - Converted error helpers to return an object instead of plain-text.  It's
517    a more consistent model than a text/plain error message.
518
519  - Added logging to 4xx status handlers
520