[Mailman-Developers] REST returns 405 to PATCH in development environment.

Barry Warsaw barry at list.org
Tue Oct 18 11:02:49 EDT 2016


On Oct 17, 2016, at 07:23 PM, Mark Sapiro wrote:

>It all seems to work except editing. I can create a domain with or
>without an alias_domain, see it all listed and delete the domain, but
>any attempts at editing the domain fail with the core REST server
>returning 405 to the PATCH request. Even if I stash my changes and
>revert to the branch head, edits fail in the same way.

Hi Mark.

The way Falcon works is that you need an on_<METHOD>() method for every HTTP
METHOD that a resource implements.  If you look at the ADomain class (or the
_DomainBase base class), it only implements an on_get() and an on_delete(),
but no on_put() or on_patch().  So when you try to invoke PUT or PATCH on a
domain resource, you get a 405, i.e. Method Not Allowed.

And afaict, your MR doesn't an on_patch().

It's a bit more work to implement PUT and PATCH, so not every resource
currently supports it.  There are several examples in the code though, and
often on_put() and on_patch() differ only in the set of required attributes.
By definition, PUT requires a complete resource and PATCH allows for partial
resources.  Take a look at ListArchivers in rest/lists.py for an example.

Cheers,
-Barry


More information about the Mailman-Developers mailing list