MENU
    Munka SOAP és XML API-kkal
    • 31 Oct 2023
    • 2 Elolvasandó percek
    • Közreműködők

    Munka SOAP és XML API-kkal


    Cikk összefoglaló

    Áttekintés

    Útmutató tippekkel és trükkökkel az XML-alapú API-kkal való munkához

    ATulip Connectors számos típusú külső adatforrással való interakcióra használható. Ez a cikk az XML használatával információt cserélő HTTP API-kra összpontosít. Ebbe a kategóriába tartoznak a SOAP API-k is.

    XML-adatok küldése a Tulipban

    XML-tartalom küldéséhez a kérés testében használja a $value$ jelölést annak jelzésére, hogy egy paramétert kell beilleszteni.

    Például a következőkkel a Request Body mezőben:

    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    
     xmlns:mes="http://mes.myexample.com"
    
     xmlns:get="http://getInfo.mes.myexample.com"
    
    
    
    >
    >
    >
    >
    >
    >
    >
    >
    >
    > $input1$
    >
    > $input2$
    >
    >
    >
    >
    >
    >
    >
    >
    > ```
    >
    >
    >
    
    
    és az `input1` és `input2` értékeket a Connector Function bemeneteként, egy kérés készül az `input1` és `input2` értékekkel a Request Body-ba behelyettesítve.
    
    
    Ezt mutatja az alábbi Tulip Connector Function interfész:
    
    
    ![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=""}
    
    
    ## XML-adatok elemzése a Tulipban
    
    
    ### Egy egyszerű API-példa
    
    
    Kezdjük egy egyszerű példával, egy XML API-ból érkező válasszal.
    Plain text

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

    Hétköznapi olasz

    Giada De Laurentiis

    2005

    30.00

    Harry Potter

    J. K. Rowling

    2005

    29.99

    XML tanulása

    Erik T. Ray

    2003

    39.95

    A következő példák azt mutatják, hogyan lehet a Tulipban lévő különböző információkhoz hozzáférni.
    
    
    Egy kivonatoló:
    
    
    `/bookstore/book[1]/title`
    
    
    visszaadja:
    
    
    `<title lang="en">Hétköznapi olasz</title>`
    
    
    Vegye figyelembe, hogy az XML-ben a tömbök "1-indexáltak", ami azt jelenti, hogy az első elem az "1" pozícióban van, szemben a {{glossary.JSON}}-kérdéssel, amely "0-indexált".
    
    
    Egy kivonatoló a:
    
    
    `/bookstore/book[1]/title/text()`
    
    
    visszaadja:
    
    
    `Hétköznapi olasz`
    
    
    Vegyük észre, hogy a `/text()` függvény a kiválasztott csomópontban található szövegérték kinyerésére szolgál.
    
    
    A következő kivonatoló: An extractor of:
    
    
    `/bookstore/book[@category="children"][1]/title/text()`
    
    
    visszatér:
    
    
    `Harry Potter`
    
    
    Vegyük észre, hogy a szelektor lehetővé tette számunkra, hogy egy csomópont tulajdonságain belül keressünk.
    
    
    Ezek a példák közvetlenül felhasználhatók a Tulipban, ahogy az alábbiakban látható:
    
    
    ![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Working%20with%20SOAP%20and%20XML%20APIs_229776239.png)
    
    
    ### Egy SOAP API példa
    
    
    Most vizsgáljunk meg egy összetettebb esetet névterekkel, ami a SOAP API-k tipikus jellemzője.
    
    
    ``` <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
    >
    >
    >
    >
    >
    >  info sikeresen lekérdezett
    >
    >
    >
    >
    >
    >
    >
    > Műveletem
    >
    > Nincs
    >
    > 1234567-890
    >
    > B
    >
    >
    >
    >
    >
    >
    >
    > PartNumber
    >
    > 1234567-890
    >
    >
    >
    >
    >
    > PartRevision
    >
    > B
    >
    >
    >
    >
    >
    > PartDescription
    >
    > Az én példaalkatrészem
    >
    >
    >
    >
    >
    >
    >
    > Normál
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    > ```
    >
    >
    >
    
    
    Ez a válasz XML névtereket használ, ami bonyolultabbá teszi a dolgot. A legtöbb esetben a `//*` és `.//*` operátorok használatával végzett globális keresés nagyon egyszerűvé teszi a kivonatolást.
    
    
    Egy kivonatoló a:
    
    
    `//*[local-name()="propertyName"][1]/text()`
    
    
    visszaadja:
    
    
    `PartNumber`
    
    
    Vegye figyelembe, hogy az XML-ben a tömbök "1-indexáltak", ami azt jelenti, hogy az első elem az "1" pozícióban van, szemben a json-kérdéssel, amely "0-indexált".
    
    
    Egy kivonatoló:
    
    
    `//*[local-name()="Property"]`
    
    
    visszatér:
    
    
    `<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>A példarészem</propertyValue> </Property>`
    
    
    Itt jegyezzük meg, hogy a névterek "lehozódnak" ebbe az eredménybe. És ezért egy al-lekérdezés továbbra is a globális névtérben keresne.
    
    
    Objektumok tömbjének kinyeréséhez használjuk az előző példában bemutatott globális keresést a tömb kinyeréséhez, majd egy helyi kereső kivonatolót a:
    
    
    `.//*[local-name()="propertyName"]/text()`
    
    
    formájú objektumok tömbjének kinyeréséhez:
    
    
    `[ { { "Name": "PartNumber"
     "Value": "1234567-890" }, { "Name": "PartRevision"
     "Value": "B"
     }, { "Name": "PartDescription"
     "Value": "My example part"
     }
    ]`
    
    
    Ezeket a példákat az alábbi Tulip Connectors Interface mutatja be:
    
    
    ![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Working%20with%20SOAP%20and%20XML%20APIs_229781522.png)
    
    
    
    
    ---
    
    
    Megtalálta, amit keresett?
    
    
    A [community.tulip.co](https://community.tulip.co/?utm_source=intercom&utm_medium=article-link&utm_campaign=all) oldalon is megteheti, hogy felteszi kérdését, vagy megnézheti, hogy mások is szembesültek-e hasonló kérdéssel!
    Plain text

    Hasznos volt ez a cikk?