MENU
    SOAP 및 XML API로 작업하기
    • 21 Oct 2024
    • 2 읽을 분
    • 기여자

    SOAP 및 XML API로 작업하기


    기사 요약

    개요

    XML 기반 API 작업을 위한 팁과 요령이 담긴 가이드

    튤립 커넥터는 다양한 유형의 외부 데이터 소스와 상호 작용하는 데 사용할 수 있습니다. 이 문서에서는 XML을 사용하여 정보를 교환하는 HTTP API에 초점을 맞춥니다. 이 범주에는 SOAP API도 포함됩니다.

    Tulip에서 XML 데이터 보내기

    요청 본문에 XML 콘텐츠를 보내려면 $value$ 표기법을 사용하여 매개변수를 삽입해야 함을 표시합니다.

    예를 들어 요청 본문 필드에 다음과 같이 입력합니다:

    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
     xmlns:mes="http://mes.myexample.com"
     xmlns:get="http://getInfo.mes.myexample.com"
    
    
    
    >
    >
    >
    >
    >  $input1$
    >  $input2$
    >
    >
    >
    > ```
    >
    >
    
    
    를 커넥터 함수에 입력으로 `입력1과` `입력2` 값을 입력하면 요청 본문에 `입력1과` `입력2` 값을 대입하여 요청이 이루어집니다.
    
    
    이는 아래의 튤립 커넥터 함수 인터페이스에 나와 있습니다:
    
    
    ![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=""}
    
    
    ## Tulip에서 XML 데이터 파싱하기
    
    
    ### 간단한 API 예제
    
    
    XML API의 간단한 예제 응답부터 시작해 보겠습니다.
    Plain text

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

    일상 이탈리아어
    Giada De Laurentiis
    2005
    30.00

    해리 포터
    J K. Rowling
    2005
    29.99

    XML 학습
    에릭 T. 레이
    2003
    39.95

    다음 예제는 Tulip 내의 다양한 정보에 접근하는 방법을 보여줍니다.
    
    
    추출기
    
    
    `/bookstore/book[1]/title`
    
    
    을 반환합니다:
    
    
    `<title lang="en">Everyday Italian</title>`
    
    
    XML의 배열은 "1-인덱스"로, "0-인덱스"인 {{glossary.JSON}} 쿼리와 달리 첫 번째 요소가 "1" 위치에 있다는 것을 의미한다는 점에 유의하세요.
    
    
    추출기는 다음과 같습니다:
    
    
    `/bookstore/book[1]/title/text()`
    
    
    가 반환합니다:
    
    
    `일상 이탈리아어`
    
    
    `text()` 함수는 선택한 노드에 포함된 텍스트 값을 추출하는 데 사용됩니다.
    
    
    추출기는 다음과 같습니다:
    
    
    `/bookstore/book[@category="children"][1]/title/text()`
    
    
    를 반환합니다:
    
    
    `Harry Potter`
    
    
    선택기를 사용하면 노드의 속성 내에서 검색할 수 있다는 점에 유의하세요.
    
    
    이 예제는 아래와 같이 Tulip에서 직접 사용할 수 있습니다:
    
    
    ![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Working%20with%20SOAP%20and%20XML%20APIs_229776239.png)
    
    
    ### SOAP API 예제
    
    
    이제 SOAP API의 일반적인 기능인 네임스페이스를 사용하여 좀 더 복잡한 경우를 살펴보겠습니다.
    
    
    ```<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
    >
    >
    >  정보 검색 성공
    >
    >
    >
    >  내 작업
    >  없음
    >  1234567-890
    >  B
    >
    >
    >
    >  부품 번호
    >  1234567-890
    >
    >
    >  PartRevision
    >  B
    >
    >
    >  부품 설명
    >  내 예제 부품
    >
    >
    >
    >  Normal
    >
    >
    >
    >
    >
    > ```
    >
    >
    
    
    이 응답은 XML 네임스페이스를 사용하므로 복잡성이 추가됩니다. 대부분의 경우 `//*` 및 `.//*` 연산자를 사용하는 전역 검색을 사용하면 매우 간단하게 추출할 수 있습니다.
    
    
    추출기
    
    
    `//*[local-name()="propertyName"][1]/text()`
    
    
    를 반환합니다:
    
    
    `PartNumber`
    
    
    XML의 배열은 "1-인덱스"로, "0-인덱스"인 json-query와 달리 첫 번째 요소가 "1"의 위치에 있다는 것을 의미합니다.
    
    
    추출기
    
    
    `//*[local-name()="Property"]`
    
    
    를 반환합니다:
    
    
    `<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>부품 설명</propertyName> <propertyValue>내 예제 부품</propertyValue> </Property>`
    
    
    여기서 네임스페이스가 이 결과로 "가져온" 것에 주목하세요. 따라서 하위 쿼리는 여전히 전역 네임스페이스를 검색합니다.
    
    
    객체 배열을 추출하려면 이전 예제에 표시된 글로벌 검색을 사용하여 배열을 추출한 다음 로컬 검색 추출기를 사용하여 다음과 같이 추출합니다:
    
    
    `.//*[local-name()="propertyName"]/text()`
    
    
    를 사용하여 해당 형식의 객체 배열을 검색합니다:
    
    
    `[ { "Name": "PartNumber" "Value": "1234567-890" }, { "Name": "PartRevision" "Value": "B" }, { "Name": "PartDescription" "값": "내 예제 부품" } ]`
    
    
    이러한 예제는 아래의 튤립 커넥터 인터페이스에 나와 있습니다:
    
    
    ![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Working%20with%20SOAP%20and%20XML%20APIs_229781522.png)
    
    
    
    
    ---
    
    원하는 것을 찾았나요?
    
    
    [community.tulip.co로](https://community.tulip.co/?utm_source=intercom&utm_medium=article-link&utm_campaign=all) 이동하여 질문을 게시하거나 다른 사람들이 비슷한 문제를 겪었는지 확인할 수도 있습니다!
    Plain text

    이 문서가 도움이 되었습니까?