웹 응용 프로그램이나 서버를 만들기 위해 배울 수 있는 다양한 클라이언트 언어가 있습니다. 요즘 많은 사람들이 사용하는 인기 있는 클라이언트 언어는 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을 사용하고 배우는 이유는 다음과 같습니다:
- 단순하고 쉬움: Python의 구문은 매우 명확하고 읽기 쉽습니다. 이는 다른 프로그래밍 언어보다 Python 코드를 작성하고 이해하며 유지관리하는 것을 훨씬 간단하게 만들어 줍니다.
- 광범위한 라이브러리: Python은 수많은 라이브러리 세트와 모듈을 가지고 있어 웹 서비스와 작업할 수 있습니다 - 일부는 SOAP 서비스 소비를 간소화하여 SOAP 기반 웹 서비스와 상호작용하는 데 필요한 Python 코드의 복잡성을 줄이기까지 합니다.
- 다재다능: Python은 웹 개발에서 데이터 과학 및 머신 러닝에 이르기까지 다양한 도메인에서 사용됩니다. Python과 웹 서비스에 대한 이해가 충분하다면 위에서 언급한 작업 분야의 애플리케이션에 SOAP 기반 웹 서비스를 쉽게 통합할 수 있습니다.
- 커뮤니티 지원: 전 세계의 Python 개발자들은 커뮤니티에 기여하여 새로운 개발자가 Python 프로그래밍 언어와 함께 작업할 수 있도록 튜토리얼 및 가이드와 같은 자원을 제공합니다. 여기에는 SOAP 기반 웹 서비스 작업도 포함됩니다.
- 크로스 플랫폼 지원: 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에서 새 요청 만들기
위 이미지에서 보여지는 버튼을 선택하십시오.
2단계: 새 요청 구성하기
화살표 1 - SOAP 요청은 일반적으로 HTTP POST 메서드를 통해 전송되므로 요청 유형을 POST로 설정해야 합니다. 또한 요청 URL을 실행 중인 Python SOAP API의 엔드포인트로 설정해야 합니다. 이 요청 URL의 예시는 http://localhost:8000/
일 수 있습니다.
화살표 2 - SOAP API에 맞게 추가 매개변수를 추가하십시오.
3단계 - 헤더 포함하기
위 섹션으로 가려면 "헤더" 버튼을 클릭하고 요청에 두 개의 헤더를 추가하십시오:
Content-Type
: 이것을text/xml
로 설정하십시오.SOAPAction
: 호출할 SOAP 액션 또는 메소드를 설정하십시오.
4단계 - 요청 본문 설정하기
- "본문" 섹션에서
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도 테스트할 수 있습니다!