[SOAP] Optionale Parameter in der WSDL - wie in PHP?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [SOAP] Optionale Parameter in der WSDL - wie in PHP?

    Ich habe in meiner WSDL Datei ein Komplexen Datentyp festgelegt der ziemlich groß ist wenn ich alle Werte Setze.
    Habe sogut wie alle Parameter mit minOccurs=0 und maxOccours=1 gesetzt so das der großteil Optionale Parameter laut WSDL Definition sind
    Jetzt biete ich dem Kunden an das er mir der Anfrage mitteilen kann welche Felder er mit ausgeliefert haben möchte.
    und wegen Traffic würde ich dann auch gerne nur diese Felder ausliefern.

    Bisher setzt PHP alle Felder auf null, 0 oder "" also auf "Leer" je nach Datentyp (im SOAP Request halt nur "<Feldname/>")

    Wie kann ich es jetzt anstellen das auch wirklich nur die Datentypen übermittelt werden die ich angebe?

    Habe mal durchgerechnet. Im schlimmsten Fall so 90 GB Sinnlostraffic durch diese "null"-Felder

  • #2
    "90 GB Sinnlostraffic" pro Monat?!?

    Ich überschlagen das mal mit ca. 30 Byte für ein "<Feldname/>". 90 GB entsprechen bei
    ... 1000 sinnlosen Feldern ca. 1,25 Aufrufen pro Sekunde
    ... 100 sinnlosen Feldern ca. 12,5 Aufrufe pro Sekunde.
    Wahrscheinlich liegt die Wahrheit irgendwo dazwischen.

    Da drängt sich die Frage auf, was du da machst. Bist du Amazon?


    Wie sieht denn dein Code aus? Welche Klassen/Extensions nutzt du zum Erzeugen der Antwort?

    Kommentar


    • #3
      arg Rechenfehler
      die Daten waren etwas komisch die ich vorliegen hatte (wer kommt bitte drauf das die Auswertung in Hundertstel Anfragen je 5 Minuten ist?)
      kommt wohl doch eher zu 0.9 GB sinnlos Traffic
      aber trotzdem - sinnlos Felder

      also ich nutze SoapClient und SopaServer
      also Standard php5 Boardmittel
      und zurück schicke ich einfach nen array mit stdClass Objekten im format des SOAP Objektes und PHP macht halt jedes stdClass Objekt noch die ganzen leer Felder rein und macht die dann halt auch in den SOAP Request.

      habe mir jetzt auch mal ne testClass mit mit __get und __set gebaut
      und wenn ich das nehme passiert das selbe. wenn ich aber __get auskommentiere dann bekomme ich ein vollkommen leeres Soap Objekt

      habs dann noch versucht mit __isset, so das php evtl vorher prüfen kann ob das feld gesetzt ist aber das hats auch nicht gebracht.

      achso bei dem __get war es egal ob ich nun was zurückgegeben habe oder nicht.

      Kommentar

      Lädt...
      X