MENU
    Lavorare con API SOAP e XML
    • 31 Oct 2023
    • 3 Minuti da leggere
    • Contributori

    Lavorare con API SOAP e XML


    Sommario dell'articolo

    Panoramica

    Una guida con suggerimenti e trucchi per lavorare con le API basate su XML

    ITulip Connector possono essere utilizzati per interagire con molti tipi di fonti di dati esterne. Questo articolo si concentra sulle API HTTP che scambiano informazioni utilizzando XML. Questa categoria comprende le API SOAP.

    Invio di dati XML in Tulip

    Per inviare contenuti XML nel corpo di una richiesta, utilizzare la notazione $value$ per indicare che un parametro deve essere inserito.

    Ad esempio, con quanto segue nel campo Request Body:

    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    
     xmlns:mes="http://mes.myexample.com"
    
     xmlns:get="http://getInfo.mes.myexample.com"
    
    
    
    >
    >
    >
    >
    >
    >
    >
    >
    >
    > $input1$
    >
    > $input2$
    >
    >
    >
    >
    >
    >
    >
    >
    > ```
    >
    >
    >
    
    
    e i valori `input1` e `input2` come input della funzione Connector, viene fatta una richiesta con i valori di `input1` e `input2` sostituiti nel corpo della richiesta.
    
    
    Questo è mostrato nell'interfaccia della funzione Connector di Tulip:
    
    
    ![Working with SOAP and XML APIs_229803470.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Working%20with%20SOAP%20and%20XML%20APIs_229803470.png){height="" width=""}
    
    
    ## Analizzare i dati XML in Tulip
    
    
    ### Un semplice esempio di API
    
    
    Cominciamo con un semplice esempio di risposta da un'API XML.
    Plain text

    xml version="1.0" encoding="UTF-8"?

    Italiano quotidiano

    Giada De Laurentiis

    2005

    30.00

    Harry Potter

    J. K. Rowling

    2005

    29.99

    Imparare l'XML

    Erik T. Ray

    2003

    39.95

    I seguenti esempi mostrano come accedere alle varie informazioni di Tulip.
    
    
    Un estrattore di:
    
    
    `/libreria/libro[1]/titolo`
    
    
    restituisce:
    
    
    `<titolo lang="en">L'italiano di tutti i giorni</titolo>.`
    
    
    Si noti che gli array in XML sono "indicizzati a 1", il che significa che il primo elemento è in posizione "1", a differenza di {{glossario.JSON}}-query che è "indicizzato a 0".
    
    
    Un estrattore di:
    
    
    `/libreria/libro[1]/titolo/testo()`
    
    
    restituisce:
    
    
    `Italiano quotidiano`
    
    
    Si noti che la funzione `/testo()` viene utilizzata per estrarre il valore del testo contenuto nel nodo selezionato.
    
    
    Un estrattore di:
    
    
    `/libreria/libro[@categoria="bambini"][1]/titolo/testo()`
    
    
    restituisce:
    
    
    `Harry Potter`
    
    
    Si noti che il selettore ci ha permesso di cercare all'interno delle proprietà di un nodo.
    
    
    Questi esempi possono essere utilizzati direttamente in Tulip, come mostrato di seguito:
    
    
    ![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Working%20with%20SOAP%20and%20XML%20APIs_229776239.png)
    
    
    ### Esempio di API SOAP
    
    
    Esaminiamo ora un caso più complesso con gli spazi dei nomi, una caratteristica tipica delle API SOAP.
    
    
    ``` <soap:Envelope
    
     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    
    
    
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >  0
    >
    >
    >
    >
    >
    >  informazioni recuperate con successo
    >
    >
    >
    >
    >
    >
    >
    > La mia operazione
    >
    > Nessuna
    >
    > 1234567-890
    >
    > B
    >
    >
    >
    >
    >
    >
    >
    > Numero di parte
    >
    > 1234567-890
    >
    >
    >
    >
    >
    > Revisione della parte
    >
    > B
    >
    >
    >
    >
    >
    > Descrizione della parte
    >
    > Il mio esempio di parte
    >
    >
    >
    >
    >
    >
    >
    > Normale
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    > ```
    >
    >
    >
    
    
    Questa risposta utilizza gli spazi dei nomi XML, che aggiungono complessità. Per la maggior parte dei casi, una ricerca globale con gli operatori `//*` e `.//*` rende l'estrazione molto semplice.
    
    
    Un estrattore di:
    
    
    `//*[local-name()="propertyName"][1]/text()`
    
    
    restituisce:
    
    
    `Numero di parte`
    
    
    Si noti che gli array in XML sono "indicizzati a 1", il che significa che il primo elemento è in posizione "1", a differenza di json-query che è "indicizzato a 0".
    
    
    Un estrattore di:
    
    
    `//*[local-name()="Property"]`
    
    
    restituisce:
    
    
    `<Property xmlns="http://getInfo.mes.myexample.com"> <propertyName>PartNumber</propertyName> <propertyValue>1234567-890</propertyValue> </Property> <Property xmlns="http://getInfo.mes.myexample.com"> <propertyName>PartRevision</propertyName> <propertyValue>B</propertyValue> </Property> <Property xmlns="http://getInfo.mes.myexample.com"> <propertyName>PartDescription</propertyName> <propertyValue>My example part</propertyValue> </Property>`
    
    
    Si noti che gli spazi dei nomi vengono "portati giù" in questo risultato. Pertanto, una sotto-query cercherebbe ancora nello spazio dei nomi globale.
    
    
    Per estrarre un array di oggetti, usare la ricerca globale mostrata nell'esempio precedente per estrarre l'array e poi un estrattore di ricerca locale di:
    
    
    `.//*[local-name()="propertyName"]/text()`
    
    
    per recuperare un array di oggetti della forma:
    
    
    `[ {"Nome": "PartNumber"
     "Value": "1234567-890" }, { "Name": "PartRevision"
     "Value": "B"
     }, { "Name": "PartDescription"
     "Value": "La mia parte di esempio"
     }
    ]`
    
    
    Questi esempi sono mostrati nell'interfaccia dei connettori Tulip di seguito:
    
    
    ![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Working%20with%20SOAP%20and%20XML%20APIs_229781522.png)
    
    
    
    
    ---
    
    
    Avete trovato quello che cercavate?
    
    
    Potete anche andare su [community.tulip.co](https://community.tulip.co/?utm_source=intercom&utm_medium=article-link&utm_campaign=all) per postare la vostra domanda o vedere se altri hanno affrontato una domanda simile!
    Plain text

    Questo articolo è stato utile?