Ho lavorato su questo problema per un paio di settimane e non riesco a trovare una soluzione per la mia vita. Il fatto di non aver trovato alcuna documentazione decente (sul sito Web di Drupal o altrove) non è di aiuto. E le domande già qui sono obsolete (Servizi 2.x).
Sto cercando di creare un servizio REST per un sito supportato da Drupal Commerce. Per ora tutto ciò che il servizio deve fare è consentire operazioni CRUD di base sulla risorsa Ordine ed essere protetto con OAuth, OAuth 2.0 non è necessario. Deve anche essere chiamato con uno script su un server, quindi i reindirizzamenti dell'accesso sono impossibili (tutto viene eseguito con l'autenticazione a 2 gambe).
Lo stack corrente è:
- PHP 5.3.15
- Drupal 7.15
- Profilo di Commerce Kickstart (7.x-2.0-rc1)
- Servizi 7.x-3.2
- OAuth 7.x-3.0 + 18-dev
- Autenticazione OAuth 7.x-3.2
- Server REST 7.x-3.2
- Commerce Services 7.x-1.x-dev (Questo è il modulo a cui ho aggiunto il mio codice ordine personalizzato)
Posso in qualche modo far funzionare le funzioni Retrieve / Index per gli ordini se uso una libreria PHP OAuth e chiamo semplicemente la richiesta di token ogni volta (non sono nemmeno sicuro di cosa stia succedendo lì, tranne che autentica ...). Se provo a POSTARE agli ordini e creo un ordine, ottengo 406 con lo script e 401 quando provo una richiesta POST diretta dalla console REST in Google Chrome, anche quando OAuth è disabilitato.
Questo ha reso il debug un incubo poiché non ho idea di cosa stia succedendo nella mia funzione di creazione. Ho provato a toglierlo dalla sua logica di creazione degli ordini e ho semplicemente fatto eco al payload della richiesta. Ricevi ancora gli errori 406/401.
Presumo di ricevere gli errori 401 perché gli ordini richiedono un'autenticazione utente (anche se OAuth è disattivato per il servizio).
Non capisco perché sto ricevendo gli errori 406 però. Accetto application / json, che è ciò che il mio server REST è impostato per restituire.
Gli ordini non venivano creati nemmeno prima che commentassi la logica di creazione degli ordini. (Che uso efficacemente altrove nel sito.)
Apprezzamento in anticipo.
-T