2013-04-29 16 views
8

Próbowałem użyć metody def patch(): w moim webapp2.RequestHandler wspierać aktualizacji zasobów częściowych, ale potem zobaczyłem, że dopuszczalne metody są zamrożone webapp2.py:łata teleskopowa na Google App Engine WebApp2

allowed_methods = frozenset(('GET', 'POST', 'HEAD', 'OPTIONS', 'PUT', 
          'DELETE', 'TRACE')) 

Jak mogę rozszerzyć webapp2.RequestHandler lub zmodyfikować klasę WSGIApplication, aby zezwolić na metodę HTTP PATCH po wdrożeniu w Google AppEngine?

+2

Aby obejść ten problem, można zaimplementować metodę "zastępowania metod X-HTTP", tak jak robią to Google dla własnych interfejsów API: http://googleappsdeveloper.blogspot.de/2012/03/making-patch-requests-from- app-engine.html –

Odpowiedz

10

Wystarczy użyć patcha małpa wykonując to przed utworzeniem WSGIApplication:

allowed_methods = webapp2.WSGIApplication.allowed_methods 
new_allowed_methods = allowed_methods.union(('PATCH',)) 
webapp2.WSGIApplication.allowed_methods = new_allowed_methods 

Jest prąd patch na emisyjnej trackera webapp2 ale nikt nie podniósł.