Frage von Plueschtier94, 24

PHP -> XML -> API über HTTPS ansprechen?

Hallo zusammen,

leider eine "dumme" Frage.

Ich habe noch nie mit XML geschweige denn Schnittstellen gearbeitet. Jetzt möchte/muss ich es aber :D

Ich muss per API Daten per XML über HTTPS übergeben. Ehm, soweit so gut.

Meine Daten verarbeite ich über PHP, weswegen der XML Aufruf, auch innerhalb des Codes erfolgen sollte.

Das verarbeiten stellt kein Problem dar, aber ich habe eher Fragen wie ich die XML dafür anpasse, bzw generell erstelle.

Erstelle ich mir einen "String" mittels PHP, der eine XML-Struktur hat? Ich brauche als Beispiel (sorry GF lässt hier Strukturen echt blöd zu)

ORDER
              SHIPMETHODE
                            VALUE - DEUTSCHE POST /VALUE
             /SHIPMETHODE
/ORDER

Ja wie läuft das ab? Erstelle ich mir einen leeren String, der die Struktur besitzt, und lasse ihn dann mit Werten füllen und schicke diesen an die Adresse ab?

Tut mir leid, dass ich mich bei dem Thema echt blöd anstelle :D

Antwort
von AHepburn, 19

http://www.programmieren-optimieren.de/php/xml-datei-mit-php-erstellen/

Damit kannst du XML-Daten erstellen, danach kannst du sie an die API posten.

Antwort
von skreutzer, 12

Vielleicht so?

$shipMethod = "- DEUTSCHE POST";

$xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>".
"<ORDER>".
"<SHIPMETHODE>".
"<VALUE>".htmlspecialchars($shipMethod, ENT_XML1, 'UTF-8')."</VALUE>".
"</SHIPMETHODE>".
"</ORDER>";

Habe mal Umbrüche und Einrückungen im XML-String selbst eingespart, um Bytes bei der Übertragung zu sparen, aber für den Programmierer bleibt die Struktur weiterhin ersichtlich durch Einrückungen im PHP-Quellcode.

Klar, man kann auch DOMDocument oder SimpleXML verwenden, aber warum, wenn man sowieso mit dem Objekt nicht arbeiten möchte, sondern nur fix das XML konstruieren?

Bei der API, da geht es wohl um XMLRPC oder SOAP, oder?

Kommentar von Plueschtier94 ,

Danke für deinen Beitrag.
Ja richtig arbeiten muss ich damit nicht wirklich. 

Ich sende nur meine Anfrage und bekomme nur ein ok oder nicht ok zurück. Mehr brauche ich nicht.

Allerdings sind diese Anfragen halt sehr groß. 

Woran würde ich erkennen, dass es SOAP oder XMLRPC ist?

Kommentar von skreutzer ,

XMLRPC hat <methodCall> als Wurzelelement, SOAP hat <soap:Envelope> als Wurzelelement. Sind häufig anzutreffende APIs, die auf XML basieren. Oder kannst du direkt <ORDER> usw. ans Ziel schicken?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten