Sto provando ad usare Piston per fornire supporto REST a Django. Ho implementato i miei gestori come da documentazione fornita. Il problema è che posso "leggere" e "cancellare" la mia risorsa ma non posso "creare" o "aggiornare". Ogni volta che colpisco l'api pertinente ottengo 400 errori di richiesta errata.Ricevo un errore di 400 Bad Request durante l'utilizzo del pistone django
Ho esteso la classe di risorse per CSRF utilizzando questo frammento di codice comunemente disponibili:
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)
La mia classe (frammento di codice) si presenta in questo modo:
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
prega fatemi sapere come si può ottengo il metodo di creazione per lavorare usando l'operazione POST?
Ok, ho commentato "django.middleware.csrf.CsrfViewMiddleware" dal file delle impostazioni invece di utilizzare l'estensione di Classe di risorse. Vedo comunque il problema se – Cheezo
Come stai tentando l'operazione HTTP "PUT" o "POST" che corrisponde a "crea" o "aggiorna"? Come sai che questo codice lato client sta creando una richiesta HTTP corretta e valida? –
Per il POST, utilizzo un WizTools.org restclient dal quale posso creare esplicitamente una richiesta POST. Quindi sono sicuro che la richiesta sia passata e questo è sufficiente credo. – Cheezo