Visualizzazione dei risultati da 1 a 5 su 5

Discussione: creare web service

  1. #1
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313

    creare web service

    ciao,
    ho guardato alcune guide e tutorial ma tutti i web service mostrati sono molto semplici. per fare un esempio: il client chiama la funzione getRate e riceve il tasso di cambio di una valuta.

    ma io ho bisogno di fare un webservice (e il relativo client) che restituisce una lista di elementi complessi in XML.

    praticamente il cliente chiama il metodo getList e il server esegue una query nel db e restituisce una lista con le auto disponibili.

    descrizione oggetto auto in xml
    codice:
    <lista_oggetti>
    <oggetto id="1"><marca>fiat</marca><prezzo>9000</prezzo></oggetto>
    <oggetto id="2"><marca>porsche</marca><prezzo>69000</prezzo></oggetto>
    </lista_oggetti>
    io so fare un cliente e un server che restituiscono valori semplici (come il tasso di cambio appunto), ma non ho la piu pallida idea di come fare a restituire la lista di oggetti e a parsarla quando arriva al client.

    mi potete dare una mano? magari indicandomi qualche guida?

    ps: mi sembra inutile riportare il codice di client e server per l'esempio dato sopra (ma se volete lo posto).
    alcool: la causa e la soluzione di tutti i problemi

  2. #2
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    qualcuno ha dimestichezza con nusoap o php soap?
    non so piu dove sbattere la testa!

    ho passato due giorni a cercare guide e tutorial ma su nusoap o php soap si trova ben poco (o se si trova, é del genere molto semplice di cui ho parlato sopra!).

    hep
    alcool: la causa e la soluzione di tutti i problemi

  3. #3
    Uso nusoap come client e server ma solitamente è per operazioni che restituiscono solo 1 o 0 ...
    Ma mi sembra di aver letto da qualche parte che nusoap gestisce da solo i tipi "complessi" (nel tuo caso un array è più che sufficente) senza bisogno di gestire il risultato "manualmente".
    Hai provato semplicemente facendo che in modo che il tuo webservice restituisce un array?

  4. #4
    Confermo: nusoap si arrangia e fa tutto da solo e permette di restituire un array ...

    La prova:

    client.php
    Codice PHP:
    <?php
    require_once('./lib/nusoap.php');
    $s = new soapclient('http://localhost:8021/soap/server.php');
    $result $s->call('testArray');
    if(!
    $err $s->getError()){
        print 
    'Result: <pre>'.print_r($result1).'</pre>';
    } else {
        print 
    "Error: $err";
    }
    ?>
    server.php
    Codice PHP:
    <?php
    require_once('./lib/nusoap.php');

    $s = new soap_server();
    $s->register('testArray');
    function 
    testArray($id){
        return 
    $_SERVER;
    }
    $s->service($HTTP_RAW_POST_DATA);
    ?>

  5. #5
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    ciao! grazie per la risposta...

    ora però ho un altro problema: la mia funzione restituisce un array e il client funziona alla grande.
    ora pero devo aggiungere la gestione degli errori.
    esempio:

    se non trovo nessun oggetto nel db, restituisco un soap_fault contenente il messaggio di errore.

    io ho provato cosi:
    codice:
    SERVER
    -------
    if(trovo qualcosa){
      return array_di_oggetti;
    }else{
      return new soap_fault('MyErrorCode','','My description about why this error was thrown','');
    }
    e poi nel client controllo cosi:
    codice:
    CLIENT
    -------
    if($client->fault){
      print_r($result);
    }
    else{
    echo "oggetti trovati:"
    //stampo array
    }
    
    ma mi da il seguente errore:
    Catchable fatal error: Object of class SOAP_Fault could not be converted to string

    consigli???
    alcool: la causa e la soluzione di tutti i problemi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.