Permalink
Browse files

Recognise PATCH as a valid HTTP verb.

This is defined in RFC5789: http://tools.ietf.org/html/rfc5789

This is in active use by GitHub's v3 API, among others.

As a quick overview for anyone unfamilar with PATCH, it's basically a
partial-PUT, passing only the changes - for instance, let's say you wanted to
update a customer's contact email address, you might send a PATCH request to
`/customer/42/contactdetails` with a JSON payload describing just the parts
which have changed, for instance `{ email: 'bob@example.com' }`.
  • Loading branch information...
1 parent 20c1d34 commit f7382f22070c92d72a5e99d4f9ffece67cf724a3 @bigpresh committed Oct 17, 2011
Showing with 3 additions and 3 deletions.
  1. +3 −3 lib/HTTP/Server/Simple.pm
View
6 lib/HTTP/Server/Simple.pm
@@ -701,15 +701,15 @@ sub bad_request {
Given a candidate HTTP method in $method, determine if it is valid.
Override if, for example, you'd like to do some WebDAV. The default
-implementation only accepts C<GET>, C<POST>, C<HEAD>, C<PUT>, and
-C<DELETE>.
+implementation only accepts C<GET>, C<POST>, C<HEAD>, C<PUT>, C<PATCH>
+and C<DELETE>.
=cut
sub valid_http_method {
my $self = shift;
my $method = shift or return 0;
- return $method =~ /^(?:GET|POST|HEAD|PUT|DELETE)$/;
+ $return $method =~ /^(?:GET|POST|HEAD|PUT|PATCH|DELETE)$/;
}
=head1 AUTHOR

1 comment on commit f7382f2

@obra

Would you mind rebasing, so we just have one clean commit to merge?

Please sign in to comment.