Apidog

올인원 협업 API 개발 플랫폼

API 설계

API 문서

API 디버깅

API 모킹

API 자동화 테스트

파이썬 튜토리얼: SOAP 기반 웹 서비스 작업하기

파이썬은 SOAP 기반 웹 서비스와 함께 사용되는 인기 있는 프로그래밍 언어입니다.

Young-jae

Young-jae

Updated on December 19, 2024

웹 응용 프로그램이나 서버를 만들기 위해 배울 수 있는 다양한 클라이언트 언어가 있습니다. 요즘 많은 사람들이 사용하는 인기 있는 클라이언트 언어는 Python입니다. 당신이 소프트웨어 엔지니어이거나 학기 중인 대학생이든, Python은 코딩 도구로 배우기에 훌륭한 언어 선택입니다.

Python - 인기 프로그래밍 언어

이것이 당신의 첫 번째 Python 경험이라면, Python은 가독성과 단순성으로 잘 알려진 컴퓨터 프로그래밍 언어입니다. Python은 기존의 다른 프로그래밍 언어에 비해 훨씬 더 사용자 친화적입니다. 웹 개발에 대해 더 배우고 싶다면 아주 적합한 언어가 될 수 있습니다!

Python의 다른 일반적인 사용 사례로는 데이터 분석, 인공지능 및 자동화가 있으므로, 이러한 학문 분야로 나아갈 계획이라면 Python에 익숙해질 수 있는 완벽한 시점입니다!

SOAP 기반 웹 서비스

"SOAP 기반"에서 SOAP란 무엇입니까?

SOAP는 Simple Object Access Protocol의 약자로, 웹 서비스, 시스템 및 애플리케이션 간에 구조화된 정보를 교환하기 위한 프로토콜입니다.

SOAP 프로토콜을 준수함으로써, XML(확장 가능한 마크업 언어)로 메시지를 구조화하기 위한 일련의 규칙을 따르며, 서로 다른 운영 체제와 기술에서 실행되는 프로그램이 서로 통신할 수 있도록 합니다.

일반적인 SOAP 메시지의 주요 구성 요소

Envelope: 전체 SOAP 메시지를 캡슐화하는 가장 바깥쪽 요소입니다.

Header: 메시지를 처리하기 위한 추가 정보를 포함하는 선택적 섹션입니다.

Body: 실제 데이터 또는 요청/응답 정보를 포함하는 메시지의 주요 부분입니다.

Fault: 오류를 보고하기 위한 선택적 섹션입니다.

SOAP 서비스와 함께 제공되는 WSDL 파일

문서는 새로운 것을 처음 시도할 때 개발자의 가장 좋은 친구입니다. SOAP 웹 서비스 또는 SOAP API의 경우, 사용 설명서는 WSDL 파일 형식으로 제공됩니다.

WSDL은 웹 서비스 기능, 지원되는 메소드, 사용되는 데이터 유형 및 준수하는 프로토콜에 대한 설명서를 제공합니다.

SOAP 웹 서비스 작업에 Python 사용 고려 이유는 무엇입니까?

SOAP 기반 웹 서비스에서 Python을 사용하면 개발자에게 여러 가지 이점을 제공합니다. Python을 사용하고 배우는 이유는 다음과 같습니다:

  1. 단순하고 쉬움: Python의 구문은 매우 명확하고 읽기 쉽습니다. 이는 다른 프로그래밍 언어보다 Python 코드를 작성하고 이해하며 유지관리하는 것을 훨씬 간단하게 만들어 줍니다.
  2. 광범위한 라이브러리: Python은 수많은 라이브러리 세트와 모듈을 가지고 있어 웹 서비스와 작업할 수 있습니다 - 일부는 SOAP 서비스 소비를 간소화하여 SOAP 기반 웹 서비스와 상호작용하는 데 필요한 Python 코드의 복잡성을 줄이기까지 합니다.
  3. 다재다능: Python은 웹 개발에서 데이터 과학 및 머신 러닝에 이르기까지 다양한 도메인에서 사용됩니다. Python과 웹 서비스에 대한 이해가 충분하다면 위에서 언급한 작업 분야의 애플리케이션에 SOAP 기반 웹 서비스를 쉽게 통합할 수 있습니다.
  4. 커뮤니티 지원: 전 세계의 Python 개발자들은 커뮤니티에 기여하여 새로운 개발자가 Python 프로그래밍 언어와 함께 작업할 수 있도록 튜토리얼 및 가이드와 같은 자원을 제공합니다. 여기에는 SOAP 기반 웹 서비스 작업도 포함됩니다.
  5. 크로스 플랫폼 지원: Python 프로그래밍 언어는 Windows, macOS, Linux 등 다양한 운영 체제에서 실행될 수 있습니다. 이는 Python 애플리케이션이 서로 다른 작업 환경에서 훨씬 더 유지보수가 용이하도록 합니다.

"Suds-Jurko" 라이브러리를 사용한 Python과 SOAP 기반 웹 서비스의 상호작용 예제

Python은 SOAP 기반 웹 서비스와 상호작용하기 위해 "suds-jurko" 라이브러리가 필요하므로, 어떤 작업을 시작하기 전에 Bash에서 다음 줄을 실행해야 합니다:

pip install suds-jurko

간단한 SOAP 서비스 상호작용

from suds.client import Client

# 1단계: SOAP 클라이언트 생성
url = 'https://www.example.com/soap-service?wsdl'
client = Client(url)

# 2단계: 서비스 탐색
print(client)

# 3단계: SOAP 메소드 호출
result = client.service.say_hello('John')

# 4단계: 응답 처리
print(result)

이 예제는 say_hello이라는 메소드를 갖는 SOAP 서비스를 사용하며, 이 메소드는 매개변수를 받아 인사를 반환합니다. 이 코드는 URL https://www.example.com/soap-service?wsdl을 실제 SOAP 서비스의 WSDL 파일 URL로 바꿈으로써 PHP에서 작동할 수 있도록 할 수 있습니다!

복잡한 데이터 유형 처리에 Python 사용하기

from suds.client import Client

# 1단계: SOAP 클라이언트 생성
url = 'https://www.example.com/complex-service?wsdl'
client = Client(url)

# 2단계: 서비스 탐색
print(client)

# 3단계: 복잡한 유형을 가진 SOAP 메소드 호출
person_data = {'name': 'Alice', 'age': 30, 'city': 'Wonderland'}
result = client.service.process_person_data(person_data)

# 4단계: 응답 처리
print(result)

위의 Python 코드 예제는 복잡한 유형을 매개변수로 사용하는 process_person_data라는 메소드를 가진 SOAP 서비스를 보여줍니다.

Python을 사용하여 SOAP 기반 웹 서비스 만들기

Python 언어로 자신만의 SOAP 기반 웹 서비스(또는 SOAP API)를 만들 수 있습니다. 먼저 Bash에서 spyne 라이브러리를 설치하십시오.

pip install spyne

다음으로 새로운 Python 파일을 생성해야 합니다. 이 아티클의 예로, 파일 이름은 soap_service.py가 될 것입니다. SOAP API는 sypne에 의해 정의됩니다.

from spyne import Application, rpc, ServiceBase, Iterable, Integer, Unicode

class HelloWorldService(ServiceBase):
    @rpc(Unicode, Integer, _returns=Iterable(Unicode))
    def say_hello(ctx, name, times):
        for i in range(times):
            yield f"Hello, {name}!"

# 지정된 서비스를 가지고 애플리케이션 생성
application = Application([HelloWorldService], tns='my_namespace', in_protocol=None, out_protocol=None)

API가 실행될 수 있도록 하기 위해, 앞서 만든 파일에 아래 코드를 추가하십시오.

from wsgiref.simple_server import make_server

if __name__ == '__main__':
    server = make_server('0.0.0.0', 8000, application)
    server.serve_forever()

마지막으로, Bash에서 Python 스크립트를 실행하여 작동하는지 확인하십시오.

python soap_service.py

이 SOAP API는 http://0.0.0.0:8000 URL의 간단한 HTTP 서버에서 실행되어야 합니다.

Apidog를 사용하여 Python SOAP API 테스트하기

Python으로 만든 SOAP API가 작동하는지 궁금하신가요? Apidog를 사용해보세요 - 테스트할 뿐만 아니라 디버깅하고 API를 만들 수 있는 강력한 API 플랫폼입니다.

이 기사에서는 Python SOAP API를 테스트하는 방법에 대한 데모를 제공합니다(참고: 이 요청은 Python 요청와 다릅니다!).

테스트를 위한 전제 조건

Python SOAP API를 테스트하기 위해서는 다음이 필요합니다:

  • Python SOAP API가 이미 실행 중입니다.
  • 아래 버튼을 클릭하여 Apidog를 설치하십시오!
버튼

어떤 계정으로 Apidog에 로그인할지 선택해야 합니다.

Apidog에서 Python SOAP API 테스트하는 단계

1단계: Apidog에서 새 요청 만들기

Apidog에서 새 요청 만들기
Apidog에서 새 요청 만들기

위 이미지에서 보여지는 버튼을 선택하십시오.

2단계: 새 요청 구성하기

요청 유형 변경 URL Apidog
새 요청 구성하기

화살표 1 - SOAP 요청은 일반적으로 HTTP POST 메서드를 통해 전송되므로 요청 유형을 POST로 설정해야 합니다. 또한 요청 URL을 실행 중인 Python SOAP API의 엔드포인트로 설정해야 합니다. 이 요청 URL의 예시는 http://localhost:8000/일 수 있습니다.

화살표 2 - SOAP API에 맞게 추가 매개변수를 추가하십시오.

3단계 - 헤더 포함하기

SOAP API 테스트를 위한 헤더 설정
API 요청에 헤더 설정하기

위 섹션으로 가려면 "헤더" 버튼을 클릭하고 요청에 두 개의 헤더를 추가하십시오:

  • Content-Type: 이것을 text/xml로 설정하십시오.
  • SOAPAction: 호출할 SOAP 액션 또는 메소드를 설정하십시오.

4단계 - 요청 본문 설정하기

SOAP API 요청의 원시 요청 본문 설정
SOAP API 테스트를 위한 요청 본문 설정하기
  • "본문" 섹션에서 raw 옵션을 선택하십시오.
  • 빈 공간에서 호출하려는 서비스 메소드와 일치하는 XML 형식을 사용하여 SOAP 요청을 구성하십시오.

say_hello라는 메소드를 위한 SOAP 요청의 예시는 다음과 같이 추가될 수 있습니다:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="my_namespace">
    <soapenv:Header/>
    <soapenv:Body>
        <web:say_hello>
            <name>John</name>
            <times>3</times>
        </web:say_hello>
    </soapenv:Body>
</soapenv:Envelope>

위의 코드 샘플을 사용한다면, namespace(my_namespace)와 메소드 매개변수를 실제 서비스 세부사항으로 교체했는지 반드시 확인하십시오.

5단계 - 요청 전송하고 응답 확인하기

모든 준비가 완료되면, 화면 오른쪽 상단 모서리에 있는 "전송" 버튼을 누르십시오!

성공하면 받은 응답을 볼 수 있을 것입니다. 응답이 예상하는 것과 일치하는지 다시 한 번 확인하십시오.

결론

Python은 새로운 프로그래머와 오래된 프로그래머 모두에게 많은 유연성을 제공하는 추천 프로그래밍 언어입니다. API 플랫폼(예: Apidog)을 선택하기만 하면, SOAP API의 기능을 테스트하기 시작할 수 있습니다. 그러나 물론 Apidog를 사용하여 Python REST API도 테스트할 수 있습니다!

SOAP WSDL 이해 - 상세한 설명튜토리얼

SOAP WSDL 이해 - 상세한 설명

SOAP와 WSDL은 반드시 알고 있어야 할 일반적인 약어입니다.

Young-jae

February 2, 2024

HTTP OPTIONS 메서드를 사용하는 방법은 다음과 같습니다.튜토리얼

HTTP OPTIONS 메서드를 사용하는 방법은 다음과 같습니다.

HTTP OPTIONS 메서드를 사용하는 방법에 대해 알아보세요. HTTP OPTIONS 메서드가 무엇인지, 어떻게 작동하는지, 웹 개발에서 언제 사용하는지 학습합니다. 이 글에서는 OPTIONS 메서드의 구문, 예제 및 모범 사례를 다룹니다.

Young-jae

February 1, 2024

React에서 Fetch를 사용하여 PUT 요청 하는 방법튜토리얼

React에서 Fetch를 사용하여 PUT 요청 하는 방법

React에서 fetch API를 사용하여 PUT 요청을 하는 방법을 배우세요. 이 튜토리얼은 React 훅을 사용하여 서버의 데이터를 업데이트하고 오류를 우아하게 처리하는 방법을 보여줍니다.

Young-jae

January 30, 2024