Node.js는 무료로 다운로드할 수 있는 오픈 소스, 크로스 플랫폼 자바스크립트 실행 환경입니다. 개발자들이 웹 브라우저 외부에서 자바스크립트 코드를 실행할 수 있게 해줍니다. Node.js의 큰 장점은 무료라는 점인데, 그들의 웹사이트를 방문하여 다운로드를 시작하면 됩니다.

Node.js에서 만든 SOAP API를 테스트할 도구를 찾고 있다면, Apidog은 훌륭한 선택입니다! 아래 버튼을 클릭하기만 하면 테스트를 시작할 수 있습니다! 👇 👇 👇
이 기사는 Node.js 프로그램을 그 웹사이트에서 다운로드했다고 가정하므로, SOAP API 생성 방법에 더 집중할 것입니다.
Node.js로 SOAP API를 구축해야 할 때
SOAP API가 천천히 감소하고 있지만, 여전히 Node.js로 SOAP API를 구축해야 할 많은 상황이 있습니다.
레거시 시스템과의 통합: SOAP는 여전히 레거시 시스템에서 널리 사용되며, 비동기 작업을 효율적으로 처리할 수 있는 Node.js는 이러한 시스템과 원활하게 통합할 수 있는 API 구축에 적합할 수 있습니다.
특정 산업 요구: 의료 및 금융 산업은 확립된 표준과 규정으로 인해 여전히 SOAP에 크게 의존할 수 있습니다. Node.js는 이들 분야에 맞는 준수하고 효율적인 SOAP API를 생성하는 데 도움을 줄 수 있습니다.
기존 SOAP 클라이언트와의 상호 운용성: 기존 애플리케이션, 또는 주로 SOAP를 이용하여 통신하는 서비스에 연결해야 한다면, Node.js SOAP API를 구축하면 상호 운용성을 촉진할 수 있습니다.
Node.js로 SOAP API를 생성하는 간략한 개요
자세한 내용을 들어가기 전에, 이 섹션에서는 Node.js로 SOAP API를 생성하는 방법에 대해 안내할 것입니다.
- API 정의하기
API 정의에는 다음과 같은 세부사항이 포함됩니다:
- 기능: API가 제공할 작업이나 서비스를 결정합니다.
- 데이터 구조: 클라이언트와 API 간에 교환되는 데이터 형식(대개 XML임)을 확인해야 합니다.
- WSDL 파일: API의 설명을 제공하는 WSDL(Web Services Description Language) 파일을 만들어야 합니다. soap
라이브러리 설치:
터미널에서 npm을 사용하여soap
라이브러리를 설치합니다.- 서버 측 논리 구현:
SOAP API 또는 웹 서비스에soap
라이브러리를 가져옵니다. 이 과정에서 WSDL 파일 경로와 함께soap.createServer
메서드를 구현하여 SOAP 서버를 만들어야 합니다. 마지막으로, 들어오는 요청을 처리하고 클라이언트에게 적절한 응답을 반환하는 함수를 정의합니다. - 서버 시작:
SOAP 서버를 시작하기 위해server.listen
메서드를 구현합니다. 이렇게 하면 지정된 포트에서 들어오는 SOAP 요청을 수신할 수 있습니다.
Node.js로 SOAP API를 생성하는 상세한 단계별 가이드
참고: 제공된 코드 샘플은 사용자의 이름에 따라 인사 메시지를 제공하는 SOAP API를 생성하기 위한 샘플 코드입니다. 개인적으로 사용할 계획이라면 수정이 필요합니다.
1단계: SOAP 라이브러리 설치하기
터미널을 열고 이 명령을 실행합니다.
npm install soap
이렇게 하면 SOAP API가 soap
라이브러리를 가져와 모든 메서드를 사용할 수 있습니다.
2단계: WSDL 파일 준비하기
SOAP API를 WSDL 파일에 기반하여 설계할 수 있으므로, XML(확장 가능 마크업 언어)을 통해 논리를 구현해야 합니다. 이 WSDL 파일의 이름을 greetUser.wsdl
로 지정하여 기능의 예측 가능성을 제공합니다.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://tempuri.org/Greeter"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://tempuri.org/Greeter"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:types>
<xsd:complexType name="GreetRequest">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GreetResponse">
<xsd:sequence>
<xsd:element name="greeting" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:types>
<wsdl:message name="GreetRequestMessage">
<wsdl:part name="parameters" element="tns:GreetRequest"/>
</wsdl:message>
<wsdl:message name="GreetResponseMessage">
<wsdl:part name="result" element="tns:GreetResponse"/>
</wsdl:message>
<wsdl:portType name="GreeterPort">
<wsdl:operation name="Greet">
<wsdl:input message="tns:GreetRequestMessage"/>
<wsdl:output message="tns:GreetResponseMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="GreeterBinding" type="tns:GreeterPort">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" xmlns:soap="http://schemas.xmlsoap.org/soap/"/>
<wsdl:operation name="Greet">
<soap:operation soapAction="http://tempuri.org/Greeter/Greet"/>
<wsdl:input>
<soap:body use="encoded" parts="tns:parameters"/>
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" parts="tns:result"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="GreeterService">
<wsdl:port name="GreeterPort" binding="tns:GreeterBinding">
<soap:address location="http://localhost:8080/Greeter"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
코드 설명:
코드는 GreeterService
를 정의하고, Greet
라는 작업을 포함합니다. 사용자의 이름을 입력으로 받아 인사 메시지를 클라이언트에 반환합니다. SOAP 주소 역시 제공되며, 이는 http://localhost:8080/Greeter"
입니다.
단계 3: 서버 측 SOAP API 코드 생성하기
클라이언트가 서버와 상호작용할 수 있도록 다리를 준비해야 합니다 - 바로 당신의 SOAP API입니다! 이 예제에서는 이 파일의 이름을 server.js
로 지정할 것입니다. 이는 서버의 해당 JavaScript 코드입니다.
const soap = require('soap');
// 서비스 엔드포인트와 포트 정의
const url = 'http://localhost:8080/Greeter';
// 서버 생성
const server = soap.createServer({
wsdl: './greeter.wsdl', // 실제 WSDL 파일 경로로 교체
});
// 서비스 메서드 정의
server.addFunction('Greet', (args) => {
// 요청에서 이름 추출
const name = args.name;
// 인사 메시지 생성
const greeting = `안녕하세요, ${name}!`;
// 응답으로 인사 메시지 반환
return { greeting };
});
// 서버 시작
server.listen(process.env.PORT || 8080, () => {
console.log(`SOAP 서버가 포트 ${process.env.PORT || 8080}에서 듣고 있습니다.`);
});
코드 설명:
- soap 라이브러리 가져오기: 1행은 Node.js에서 SOAP 통신을 가능하게 하는
soap
라이브러리를 가져옵니다. - 서비스 엔드포인트 및 포트 정의: 4행의 변수는 SOAP 서비스가 접근 가능한 URL과 포트를 저장합니다. 실제 배포 URL로
http://localhost:8080/Greeter
를 교체해야 합니다. - 서버 생성: 7에서 9행은
soap.createServer
메서드를 사용하여 SOAP 서버를 생성하고, WSDL 파일의 경로(greeter.wsdl
)를 지정합니다. 이 경로를 WSDL 파일의 실제 위치로 교체해야 합니다. - 서비스 메서드 정의: 12에서 21행은 WSDL에서 정의된 작업에 해당하는
Greet
함수를 정의합니다. 들어오는 요청에서name
매개변수를 추출하고, 추출한 이름을 사용하여 인사 메시지를 생성하며, 나중에 생성된 메시지를greeting
속성이 설정된 객체로 반환합니다. - 서버 시작: 24에서 26행은 지정된 포트에서 SOAP 서버를 시작하기 위해
server.listen
메서드를 사용합니다.PORT
환경 변수를 설정하여 포트를 사용자 정의할 수 있습니다.
단계 4: 클라이언트 측 코드 생성하기
클라이언트가 API에 도달할 수 있도록 특정 지침이나 요청이 필요합니다. 이 파일을 client.js
로 명명하여 클라이언트 측 코드임을 나타낼 것입니다.
const soap = require('soap');
// 서비스 엔드포인트 정의
const url = 'http://localhost:8080/Greeter'; // 실제 서비스 URL로 교체
// 클라이언트 객체 생성
soap.createClient(url, (err, client) => {
if (err) {
console.error('SOAP 클라이언트 생성 오류:', err);
return;
}
// Greet 작업에 대한 인수 정의
const args = { name: '홍길동' }; // 원하는 이름으로 교체
// Greet 작업 호출
client.Greet(args, (err, response) => {
if (err) {
console.error('Greet 작업 호출 중 오류 발생:', err);
return;
}
// 응답에서 인사 메시지 접근
const greeting = response.greeting;
console.log(greeting); // 출력: 안녕하세요, 홍길동!
});
});
코드 설명:
- soap 라이브러리 가져오기: 서버 측 코드와 유사하게, 1행은 SOAP 통신을 위한
soap
라이브러리를 가져옵니다. - 서비스 엔드포인트 정의: 이 변수는 SOAP 서비스의 URL을 저장합니다.
http://localhost:8080/Greeter
를 실제 서비스가 배포된 URL로 교체해야 합니다. - 클라이언트 객체 생성:
soap.createClient
메서드는 지정된 서비스 엔드포인트와 상호작용하는 SOAP 클라이언트 객체를 생성합니다. - 인수 정의: 이 섹션(14행)은 특정 사용자의 이름을 포함하는
Greet
작업을 위한 인수를 정의합니다. - Greet 작업 호출:
client.Greet
메서드는 서버의Greet
작업을 호출하고 정의된 인수를 전달합니다. - 응답 처리: 콜백 함수는 서버의 응답을 처리하며, 오류가 발생하면 오류 메시지를 기록하고, 성공하면 응답에서
greeting
메시지를 추출하여 콘솔에 기록합니다.
모든 API 개발자를 위한 완벽한 API 도구 - Apidog
Apidog는 종합적인 API 개발 도구입니다. 디자인 중심 지향으로, 사용자가 간단하면서도 아름다운 사용자 인터페이스를 통해 API를 시각적으로 설계, 구축 및 테스트할 수 있도록 권장합니다.

SOAP API를 테스트할 API 도구를 찾고 있다면 더이상 찾지 마세요 - Apidog는 WSDL 파일 가져오기를 지원합니다!
Apidog에 WSDL 파일 가져오기

먼저, 세로 막대의 왼쪽에서 Settings
버튼을 클릭합니다. 그러면 Data Management
섹션 하단에 있는 Import Data
버튼을 찾을 수 있습니다.
마지막으로, Apidog에 WSDL 파일을 가져올 것임을 지정하기 위해 WSDL
을 선택합니다.

WSDL 파일이 성공적으로 가져와지면, 왼쪽에서 WSDL 파일을 찾을 수 있으며, 이는 화살표 1로 표시된 이미지에서 확인할 수 있습니다. 그런 다음, 번호가 매겨진 화살표를 클릭하여 편집을 시작할 수 있습니다.
WSDL 파일을 가져오고 디버그한 후, Apidog에서 테스트를 시작하여 오류를 찾아보세요. WSDL 파일이 올바른지 확신이 서지 않으면, WSDL 파일 예제에서 더 많은 세부정보를 확인하세요.
결론
SOAP API는 Node.js의 도움으로 구축할 수 있습니다. Node.js가 비동기 작업에 강력한 기술이기 때문에( Node.js와 REST API를 결합할 수도 있습니다) SOAP API는 여전히 웹 개발 산업에서 의미를 찾고 있습니다.
SOAP API를 만들 계획이라면, 다음 세 가지 파일이 필요하다는 것을 확인해야 합니다:
- WSDL 파일: 이는 기본적으로 SOAP API의 문서 및 세부정보입니다.
- 서버 측 코드: 요청을 처리할 수 있도록 서버 측 코드가 필요합니다.
- 클라이언트 측 코드: 클라이언트 측 코드 없이 서버에 요청을 보낼 수 없으므로 데이터를 보내거나 받을 수 없습니다.
Apidog는 SOAP API를 테스트, 디버그 또는 문서화하고자 하는 분들에게 훌륭한 선택입니다. 전체 API 라이프사이클에 맞춘 사양 및 수정을 통해 Apidog는 개발자들이 몇 분 이내에 단순한 API에서 복잡한 API를 만드는 데 도움을 줄 수 있습니다!