Estoy intentando utilizar Piston para proporcionar soporte REST a Django. Implementé mis controladores según la documentación provista. El problema es que puedo "leer" y "eliminar" mi recurso, pero no puedo "crear" o "actualizar". Cada vez que pulso la api correspondiente obtengo un error de 400 Bad request.Recibo un error de 400 solicitudes incorrectas durante el uso de django-piston
He ampliado la clase de recursos para csrf mediante el uso de este fragmento de código comúnmente disponibles:
class CsrfExemptResource(Resource):
"""A Custom Resource that is csrf exempt"""
def __init__(self, handler, authentication=None):
super(CsrfExemptResource, self).__init__(handler, authentication)
self.csrf_exempt = getattr(self.handler, 'csrf_exempt', True)
Mi clase (fragmento de código) se parece a esto:
user_resource = CsrfExemptResource(User)
class User(BaseHandler):
allowed_methods = ('GET', 'POST', 'PUT', 'DELETE')
@require_extended
def create(self, request):
email = request.GET['email']
password = request.GET['password']
phoneNumber = request.GET['phoneNumber']
firstName = request.GET['firstName']
lastName = request.GET['lastName']
self.createNewUser(self, email,password,phoneNumber,firstName,lastName)
return rc.CREATED
Por favor, hágamelo saber cómo puede obtengo el método create para trabajar usando la operación POST?
Bien, comenté "django.middleware.csrf.CsrfViewMiddleware" del archivo de configuración en lugar de usar la extensión de la clase de recursos. Todavía veo el problema aunque – Cheezo
¿Cómo está intentando la operación HTTP "PUT" o "POST" que corresponde a "crear" o "actualizar"? ¿Cómo sabe que este código del lado del cliente está creando una solicitud HTTP correcta y válida? –
Para el POST, uso un cliente de reposo WizTools.org desde el cual puedo crear explícitamente una solicitud de POST. Por lo menos, estoy seguro de que la solicitud se está procesando y eso es suficiente, supongo. – Cheezo