À droite, j'ai regardé une validation à l'aide de xsd de construction mais il semblait exagéré parce que je ne suis pas sûr comment que la validation fonctionne avec différents demande XML. Par exemple, un utilisateur peut appeler UPDATE dans la requête XML. Le code XML peut ressembler à ceci :
<api>
<call>UPDATE</call>
<apptoken>MD5</apptoken>
<recordid>30294</recordid>
</api>
- <api>
- <call>UPDATE</call>
- <apptoken>MD5</apptoken>
- <recordid>30294</recordid>
- </api>
Bien sûr, tous les appels, je voudrais vérifier que cet élément <apptoken> a été inclus et dans le cas d'une mise à jour appeler I exigerait que <recordid> être définie. Sinon, je jette une erreur de réponse XML informant l'utilisateur ils soumis XML mal formé et doivent inclure une balise <recordid>. Toutefois, si l'appel est lu puis un spécifique <recordid> est facultatif mon serveur api ne sera pas erreur si cette balise est manquante, car si la balise <recordid> est manquante dans un appel de READ puis il sera juste défaut pour lire tout ce qui est très bien.
Je suppose que j'aurais besoin d'un xsd pour chaque appel?? comme UPDATE.xsd mais j'ai encore besoin de l'appel à la courbure demanderait afin de charger le bon .xsd. En outre, Im ne sais pas comment je construis des erreurs spécifiques et personnalisées avec le validateur xsd. Je me this captures entreraient en jeu ici aussi bien.
Selon moi, le hic, c'est ce que je cherche. Si il va arrêter l'exception et me permettre de renvoyer une erreur personnalisée à l'utilisateur puis je devrais être bon d'aller jusqu'à ce que je reçois plus de temps pour ressembler davantage à la validation par le biais de xsd. Merci pour la recherche Google, j'étais déjà allé aux 5 premiers résultats. Cependant, remontant à la deuxième résultat m'a fait me souviens que j'allais utiliser ce tutoriel, mais je n'avais encore rencontré la question même de la possibilité d'utiliser un schéma spécifique basé sur la requête entrante XML.
Est-il possible d'ajouter un en-tête personnalisé dans ma demande de courbure comme :
$headers = array(
"POST".$url,
"Content-Type: application/xml;",
"Content-Length: ".$content_length,
"Call: ".$call
);
- $headers = array(
- "POST".$url,
- "Content-Type: application/xml;",
- "Content-Length: ".$content_length,
- "Call: ".$call
- );
Puis le récupérer sur le serveur api avec :
$headers = apache_request_headers();
$call = $headers['Call'];
- $headers = apache_request_headers();
- $call = $headers['Call'];
Je pourrais alors nourrir l'appel dans ma classe de l'api qui puisse alors charger le schéma xsd pour valider. Des problèmes ou des pièges avec ce cours ?