Je travaille sur ce problème depuis quelques semaines maintenant, et je ne trouve pas de solution pour ma vie. Le fait que je n'ai trouvé aucune documentation décente (sur le site Web de Drupal ou ailleurs) n'aide pas non plus. Et les questions déjà posées ici sont dépassées (Services 2.x).
J'essaie de créer un service REST pour un site soutenu par Drupal Commerce. Pour l'instant, tout ce que le service doit faire, c'est autoriser les opérations CRUD de base sur la ressource Order et être sécurisé avec OAuth, OAuth 2.0 n'est pas nécessaire. Il doit également être appelé avec un script sur un serveur, donc les redirection de connexion sont impossibles (tout se fait avec une authentification à 2 pattes).
La pile actuelle est:
- PHP 5.3.15
- Drupal 7.15
- Profil Commerce Kickstart (7.x-2.0-rc1)
- Services 7.x-3.2
- OAuth 7.x-3.0 + 18-dev
- Authentification OAuth 7.x-3.2
- Serveur REST 7.x-3.2
- Commerce Services 7.x-1.x-dev (C'est le module auquel j'ai ajouté mon code de commande personnalisé)
Je peux en quelque sorte faire fonctionner les fonctions Retrieve / Index pour Orders si j'utilise une bibliothèque PHP OAuth et que j'appelle simplement la demande de jeton à chaque fois (je ne suis même pas sûr de ce qui se passe là-bas, sauf qu'il s'authentifie ...). Si j'essaie de POSTER sur commandes et de créer une commande, j'obtiens 406 avec le script et 401 lorsque j'essaie une demande POST directe à partir de la console REST dans Google Chrome, même lorsque OAuth est désactivé.
Cela a fait du débogage un cauchemar car je n'ai aucune idée de ce qui se passe dans ma fonction de création. J'ai essayé de le dépouiller de sa logique de création de commande et de renvoyer simplement la charge utile de la demande. Obtenez toujours les erreurs 406/401.
Je suppose que j'obtiens les erreurs 401 car les commandes nécessitent une authentification utilisateur (même si OAuth est désactivé pour le service).
Je ne comprends pas pourquoi j'obtiens les erreurs 406. J'accepte application / json, ce que mon serveur REST est configuré pour renvoyer.
Les commandes n'étaient pas créées avant même que je ne commente la logique de création des commandes. (Que j'utilise efficacement ailleurs sur le site.)
Appréciation à l'avance.
-T