SOAP XML Daten speichern ?
NetLook
- xml
0 King^Lully0 NetLook
0 Doppelposting
_hkl0 NetLook
0 _hkl
Hallo!
affilinet bietet einen XML Webservice. Wenn ich es richtig verstanden habe, kann ich mit Hilfe von SOAP immer die aktuellen Daten einer "offiziellen" Datenbank von affilinet abfragen, welche im XML Format wiedergegeben werden.
Ich möchte jetzt erstmal alle Menüpunkte, sprich Kategorien auf meiner Seite mit Verlinkungen darstellen. Dafür müsste ich ja mind. schon mal eine Anfrage über SOAP machen und könnte die XML Datei auslesen und die Daten darstellen.
Wenn ich nun aber auf einen Link klicke, müsste eine neue Anfrage über SOAP starten und es entsteht eine neue XML Datei, d.h. die alte verschwindet und somit auch die Menüpunkte. Wie kann ich denn alle XML Dateien behalten, muss man die eben speichern oder gibt es da elegantere Wege?
Gruß
NetLook
affilinet bietet einen XML Webservice. Wenn ich es richtig verstanden habe, kann ich mit Hilfe von SOAP immer die aktuellen Daten einer "offiziellen" Datenbank von affilinet abfragen, welche im XML Format wiedergegeben werden.
Zur Vorgehensweise:
Du solltest einen Dienst (Daemon) schreiben, der in regelmässigen zeitlichen Abständen die Aktualisierung einer "Satellitendatenhaltung" sicherstellt. Natürlich nur von den daten, die Dich interesssieren.
Keinesfalls bedarfsweise immer und immer wieder per SOAP anfragen.
Ich möchte jetzt erstmal alle Menüpunkte, sprich Kategorien auf meiner Seite mit Verlinkungen darstellen. Dafür müsste ich ja mind. schon mal eine Anfrage über SOAP machen und könnte die XML Datei auslesen und die Daten darstellen.
XML Datei? Häh? Du erhältst ein XML im HTTP-Request.
Wenn ich nun aber auf einen Link klicke, müsste eine neue Anfrage über SOAP starten und es entsteht eine neue XML Datei, d.h. die alte verschwindet und somit auch die Menüpunkte. Wie kann ich denn alle XML Dateien behalten, muss man die eben speichern oder gibt es da elegantere Wege?
Erst einmal schön strukturiert beschreiben, was Du so treibst.
Zur Vorgehensweise:
Du solltest einen Dienst (Daemon) schreiben, der in regelmässigen zeitlichen Abständen die Aktualisierung einer "Satellitendatenhaltung" sicherstellt. Natürlich nur von den daten, die Dich interesssieren.
Keinesfalls bedarfsweise immer und immer wieder per SOAP anfragen.
Öh, also ich soll prüfen, ob sich irgendwas geändert hat, ich würde jetzt sagen, das kann ich dann auch nur per SOAP machen oder? Ich bin da ganz neu, daher...
XML Datei? Häh? Du erhältst ein XML im HTTP-Request.
Und diesen HTTP-Request kann ich in einer Datei speichern und habe dann eine XML Datei :) Oder wieder falsch ?
Erst einmal schön strukturiert beschreiben, was Du so treibst.
affilinet bietet da:
https://publisher.affili.net/WebserviceDocs/ProductData/index.aspx
verschiedene Methoden an. Einmal um Kategorien abzufragen oder Produktdetails. Ich möchte eine Seite machen, wo eben der User auf die Kategorie klickt und dann eine Liste mit Produkten bekommt und wenn er auf ein Produkt klickt, zu den Produkt Details kommt usw.
Dafür müsste ich immer die entsprechene Anfrage per SOAP machen, um die XML Daten zu haben, die ich für den gewünschten Vorgang des Users brauche.
Gruß
NetLook
Hallo !
Ich hatte bereits auf Dein ursprüngliches Posting hin die Frage gestellt mit welcher Sprache Du arbeitest.
Warum hast Du jetzt ohne dies zu beantworten einen neuen Thread aufgemacht?
Grüsse
hkl
Ups, sorry nicht gesehen, ich habe gar nicht mehr nachgeguckt.
Ich arbeite mit PHP!
Gruß
NetLook
PS: werde demnächst besser nachgucken ;-)
Hallo !
Die Daten zu speichern wäre eigentlich das geringste Problem; Du erhälstst ein Responseobjekt und da stehen sie drin.
;-)
Aber:
Ich hab mir mal aus Deinem ersten Posting - wir sprachen breits darüber ;-) - versucht zusammenzureimen was Du eigentlich tun willst.
Ich möchte jetzt erstmal alle Menüpunkte, sprich Kategorien auf meiner Seite mit Verlinkungen darstellen. Dafür müsste ich ja mind. schon mal eine Anfrage über SOAP machen und könnte die XML Datei auslesen und die Daten darstellen.
Mir scheint, obwohl das ziemlich "schräg klingt" dass Du die TestSeite von affilinet irgendwie einbinden willst, also das Testformular irgendwie "ausfüllen" und die Ausgabe die Du im Browser soehst irgendwie speichern willst.
Ist das so richtig ?
=> Das ist aber so wohl weder so gedacht noch anzuraten ! <=
Das ist solch eine Art "Makro-Programmierung" für's WWW; mit SOAP hat das jetzt nicht soviel zu tun... ;-)
SOAP bietet Schnittstellen an die Du aus verschiedensten Programmiersprachen heraus nutzen kannst.
Unter PHP gibt's eine Implementierung die in der Standardinstallation enthalten ist - leider braucht diese die (GNOME) libxml2 Bibliothek mit deren Intsallation unter Windows ich mich jetzt nicht befassen kann ( geht imho gar nicht ).
Es gibt ein PEAR Paket für PHP, auc die PEAR Installation muesstest Du Dir bitte selbst aneignen.
Hier sind aber mal Code-Beispiele
<?php
require_once 'SOAP/Client.php';
$wsdl_url =
'http://webservices.affili.net/pdws/ProductDataV1.asmx?wsdl';
$WSDL = new SOAP_WSDL($wsdl_url);
$client = $WSDL->getProxy();
$PartnerID = (integer) "007";
$Password = (string) "Sehr geheim";
$ShopID = (integer) "42";
$params = array(
"PartnerID" => $PartnerID,
"Password" => $Password,
"ShopID" => $ShopID
);
#$books = $client->ManufacturerSearchRequest($params);
//$ret = $client->getCategoryList($params);
$ret = $client->call('getCategoryList',$params,array());
print_r($ret);
?>
Mittels dieser Syntax klappt's z.B. bei Amazon, der Webserver von Affillinet versteht aber offenabr den HTTP - Header nicht.
"""
SOAP_Fault Object
(
[error_message_prefix] =>
[mode] => 1
[level] => 1024
[code] => soap:Client
[message] => Server did not recognize the value of HTTP Header SOAPAction: .
[userinfo] =>
[backtrace] => Array
(
[0] => Array
(
[file] => C:\Programme\PHP\PEAR\SOAP\Fault.php
[line] => 63
[function] => PEAR_Error
[class] => PEAR_Error
[object] => SOAP_Fault Object
*RECURSION*
[type] => ->
[args] => Array
(
[0] => Server did not recognize the value of HTTP He
ader SOAPAction: .
[1] => soap:Client
""
Das möchte ich nicht weiter testen, da ich dort keie Benutzerkonto habe und so ständig Login-Fehler provozieren würde.
___
Dine Art der Fragestellugn und die fehlenden Angaben ( PHP - Version 4/5, Technologie, Beschreibung Deiner Anwendung, Grobarchitektur ) lassen mich vermuten, dass Du in diesem Bereich noch nicht gearbeitet hast.
Ist das richtig?
Falls ja, kennst Du Dich denn ein wenig mit OOP aus?
Schreib bitte mal etwas ausführlicher was Du eigentlich machen willst, welche Platform Du benutzt etc.
Nicht Deine Lösung zur "SOAP"-Verwendung sondern das Umfeld des Problems wären wichtige Informationen.
Grüsse
hkl
Hallo!
affilinet bietet einen XML Webservice. Wenn ich es richtig verstanden habe, kann ich mit Hilfe von SOAP immer die aktuellen Daten einer "offiziellen" Datenbank von affilinet abfragen, welche im XML Format wiedergegeben werden.
Wenn ich nun aber auf einen Link klicke, müsste eine neue Anfrage über SOAP starten und es entsteht eine neue XML Datei, d.h. die alte verschwindet und somit auch die Menüpunkte. Wie kann ich denn alle XML Dateien behalten, muss man die eben speichern oder gibt es da elegantere Wege?
Gruß
NetLook
Hi!
Mir scheint, obwohl das ziemlich "schräg klingt" dass Du die TestSeite von affilinet irgendwie einbinden willst, also das Testformular irgendwie "ausfüllen" und die Ausgabe die Du im Browser soehst irgendwie speichern willst.
Ist das so richtig ?
Na ja, ich habe das jetzt so verstanden, das es keine Testseite ist, sondern dort für verschiedene Zwecke schon vorgefertigte Abfragen stehen. Wenn man z.b. die Shoplist oder Kategorien abfragen möchte, klickt man auf den Punkt und dann kann man auf SOAP Klicken und hat den Code für diese Anfrage. Das Formular ist ja nur um zu sehen, welche Daten man bekommt. Ich müsste auf meiner Seite in den Link die erwünchten Parameter einbauen, die ich in die SOAP Abfage einfüge. Und wenn ich nun die Produktdetails abfragen möchte, ist es weider eine andere Abfrage mit SOAP, die mehr Parameter benötigt.
Daher meine Frage, wie ich all die XML Daten der verschiedenen Abfragen speichern kann, damit keine Infos verloren gehen.
Auf meinem Webspace ist die SOAP Extension isntalliert und hoffe nun, das die Abfragen jetzt auch funktionieren, muss ich noch testen.
Dine Art der Fragestellugn und die fehlenden Angaben ( PHP - Version 4/5, Technologie, Beschreibung Deiner Anwendung, Grobarchitektur ) lassen mich vermuten, dass Du in diesem Bereich noch nicht gearbeitet hast.
Ist das richtig?
Ja, mit SOAP und XML noch gar nicht. Mit PHP schon. PHP5 ist installiert, also verwende ich auch die Befehle ;-)
Technologie, Beschreibung Deiner Anwendung, Grobarchitektur.
Na ja, was soll ich da groß schreiben, ich möchte ja nur eine "Lösung" für dieses eine Problem. Ich möchte Produkte etc. darstellen und die Daten frage ich über die Schnittstelle ab, wie speicher ich diese daten, die ich benötige.
Falls ja, kennst Du Dich denn ein wenig mit OOP aus?
Ich denke schon, warum...?
Schreib bitte mal etwas ausführlicher was Du eigentlich machen willst, welche Platform Du benutzt etc.
Ich bin bei als Affiliate bei affilinet angemeldet. Nun möchte ich eine Internetseite machen, wo alle Kategorien eines Partnerprogramms aufgelsitet werden, direkt mit verlinkung, also man klickt auf die Kategorie und es erscheint das Submenü, klickt man hier drauf, erhält man eine Produktliste, klickt man darauf erhält man die Produktdetails. Zudem soll eine Suche für Produkte eingebaut werden. man soll die Produktlisten nach Preis sortieren können.
Dafür gibt es Produktlisten, affilinet bietet aber eben auch diesen XML Webservice an. Wo man nicht immer die CSV Daten runterladen muss, in die DB packen muss. Sondern hier hat man immer Zugriff auf die aktuellen Daten.
So, ich hoffe du bist zufriedener mit meiner Antwort ;-)
Gruß
NetLook
Hi!
Mir scheint, obwohl das ziemlich "schräg klingt" dass Du die TestSeite von affilinet irgendwie einbinden willst, also das Testformular irgendwie "ausfüllen" und die Ausgabe die Du im Browser soehst irgendwie speichern willst.
Ist das so richtig ?
Na ja, ich habe das jetzt so verstanden, das es keine Testseite ist, sondern dort für verschiedene Zwecke schon vorgefertigte Abfragen stehen. Wenn man z.b. die Shoplist oder Kategorien abfragen möchte, klickt man auf den Punkt und dann kann man auf SOAP Klicken und hat den Code für diese Anfrage.
Nein.
Du erhältst nicht den Code für den SOAP-Aufruf, sondern einen Request der eigentlich für nichts ausser Debugging gut ist.
Das Formular ist ja nur um zu sehen, welche Daten man bekommt.
Eben. Und für nichts anderes.
Ich müsste auf meiner Seite in den Link die erwünchten Parameter einbauen, die ich in die SOAP Abfage einfüge.
Un dwie willst Du das bewerkstelligen?
Die Seite laden, dann Javascript den code einblenden lassen, mit PHP parsen und absenden?
Das klingt recht abenteruerlich...
Und wenn ich nun die Produktdetails abfragen möchte, ist es weider eine andere Abfrage mit SOAP, die mehr Parameter benötigt.
Daher meine Frage, wie ich all die XML Daten der verschiedenen Abfragen speichern kann, damit keine Infos verloren gehen.
Die Frags verwundert mich immer noch.
Wenn Du die Info - wie auch immer - über den Webservice erhältst und das Ganze irgendwie serverseitig mit PHP passiert dann hast Du ein Response-Objekt.
Das ist im wesentlichen ein strukturierter String ( oder kann zu einem solchen konvertiert werden).
Es ist doch kein Problem einen String zu speichern
Den Szring kannst Du weiterverarbeiten wie Du's brauchst - das enthaltene XML in eine Datei speichern, parsen und Obejekte draus machen und serialisieren, in eine Datenbank schreiben...
Auf meinem Webspace ist die SOAP Extension isntalliert und hoffe nun, das die Abfragen jetzt auch funktionieren, muss ich noch testen.
Dine Art der Fragestellugn und die fehlenden Angaben ( PHP - Version 4/5, Technologie, Beschreibung Deiner Anwendung, Grobarchitektur ) lassen mich vermuten, dass Du in diesem Bereich noch nicht gearbeitet hast.
Ist das richtig?Ja,
Gut. Dann machst Du's vielleicht auf die gute alte "Proxy/Stub " Methode:
Du baust Dir
Das entspricht so in etwa der Methodik von CORBA oder .NET.
SOAP ist trotz sines Namens nicht per-se objektorientiert sondern ist ein XML-basierter Baukasten für RPC, deshalb braucht's da noch etwas Leim.
Ferner ist SOAP != Webservice; ein Webservice beinhaltet z.B. auch noch Methoden zur Objektlokalisierung; deshalb der abstrakte "Proxy" und der konkrete "SOAPProxy" - wenn mal UDDI ( so heisst das Protokoll zur Lokalisierung von Objekt- oder genauer Interface-implemtierungen) eine Rolle spielt, ersetzt Du den "SOAPProxy" durch einen "WSDL-Proxy" und gut ist.
mit SOAP und XML noch gar nicht. Mit PHP schon. PHP5 ist installiert, also verwende ich auch die Befehle ;-)
Das sind Äpfel und Birnen:
Technologie, Beschreibung Deiner Anwendung, Grobarchitektur.
Na ja, was soll ich da groß schreiben, ich möchte ja nur eine "Lösung" für dieses eine Problem. Ich möchte Produkte etc. darstellen und die Daten frage ich über die Schnittstelle ab,
Bislang nutzt die definierte Schnittstelle aber gar nicht, sondern baust Dir eine eigene zusammen!
Das macht mehr Probleme als es löst.
wie speicher ich diese daten, die ich benötige.
Response -> String -> ( Datenbank, Datei ... )
Falls ja, kennst Du Dich denn ein wenig mit OOP aus?
Ich denke schon, warum...?
Weil ich mir sonst den OO-Entwurf hätte schenken können... ;-)
Schreib bitte mal etwas ausführlicher was Du eigentlich machen willst, welche Platform Du benutzt etc.
Ich bin bei als Affiliate bei affilinet angemeldet. Nun möchte ich eine Internetseite machen, wo alle Kategorien eines Partnerprogramms aufgelsitet werden, direkt mit verlinkung, also man klickt auf die Kategorie und es erscheint das Submenü, klickt man hier drauf, erhält man eine Produktliste, klickt man darauf erhält man die Produktdetails.
Für eine Serveranwendung steht mir da viel zu oft "klicken" in dem Absatz.
Zudem soll eine Suche für Produkte eingebaut werden. man soll die Produktlisten nach Preis sortieren können.
Dafür gibt es Produktlisten, affilinet bietet aber eben auch diesen XML Webservice an. Wo man nicht immer die CSV Daten runterladen muss, in die DB packen muss. Sondern hier hat man immer Zugriff auf die aktuellen Daten.
Ja, aber wozu willst Du sie dann eigentlich speichern ?
;-)
SCNR
- PHP5
- Windows XP Professionell
- MySQL
So, ich hoffe du bist zufriedener mit meiner Antwort ;-)
Bist Du's denn mit meiner ?
Das wäre wichtiger ...
;-)
Grüsse
hkl
Gruß
NetLook
Hallo!
Das ist mir noch zu hoch ;-)
Nein. Du erhältst nicht den Code für den SOAP-Aufruf, sondern einen Request ...
Ja stimmt, ich hatte mich vertan, ich meinte unten den Beispielcode. Zumindest habe ich einigermaßen verstanden, was und wofür XML ist, ich denke auch SOAP.
Aber ich werde mich da erst mal ganz langsam rantasten, mit ganz simplen Tutorials und Beispielen.
Aber ich finds wirklich nett, das du dir so viel Zeit genommen hast, das ist nicht selbstverständlich :) Vielen Dank!
Gruß
NetLook