12.1 Poznámky SOAP klienta v PHP

DOKUMENTACE PHP

 

RŮZNÉ ZPŮSOBY ZÁPISU VOLÁNÍ SOAP METOD

  • Použití metody soapCall, kdy se předává v argumentech metody název volané SOAP metody a její vstupní parametry v poli:
    $input_params = array(
      'filter' => array(
        'city'=>'Praha',
      ),
      'fulltext'=>NULL,
      'number' => 123456789,
    );
    $soapClient->__soapCall('getCustomerList', $input_params);
  • Zjednodušené volání SOAP metody, kde se pak vstupní parametry předávají jako u běžné metody a v pořadí, ve kterém je očekává:
    $soapClient->getCustomerList(array('city'=>'Praha'), NULL, 123456789);

 

DODRŽENÍ SPRÁVNÉHO POŘADÍ VSTUPNÍCH PARAMETRŮ

  • Pořadí vstupních parametrů na nejvyšší úrovni musí být stejné jako je ve WSDL.
  • Např. při použití metody getCustomerList nelze prohodit pozici filter a number.
    Pokud chcete filtrovat podle čísla a města, nelze vynechat parametr fulltext a vstupní parametry se musí nastavit takto:
    $input_params = array(
      'filter' => array(
        'city'=>'Praha',
      ),
      'fulltext'=>NULL,
      'number' => 123456789,
    );

 

STRUKTURA VRÁCENÝCH DAT

  • Jestliže je v odpovědi serveru ocekáváno v nekterém parametru pole, tak v případe že je v poli pouze jeden prvek, SoapClient prevede tento prvek na objekt. Toto chování klienta lze upravit nastavením SOAP_SINGLE_ELEMENT_ARRAYS.
    $soapClient = new SoapClient($wsdl, array('features' =>
    SOAP_SINGLE_ELEMENT_ARRAYS));

 

HLEDANÍ CHYB

  • Pří ladení klienta v php je velice užitečné použít metody getLastRequest a getLastResponse. Tyto metody vám umožní zobrazit XML žádost nebo XML odpověď, kterou posíláte nebo přijímáte od serveru a následně ji porovnat se vzorem uvedeným v dokumentaci u jednotlivých metod.

 

PROBLÉM S KOMUNIKACÍ PŘES HTTPS
Je nutné, aby na klientovy byla nainstalována verze OpenSSL >= 1.0.0