320x100
320x100
개요
: nodeJS에서 SOAP 클라이언트 프로그램을 만들어 외부 모듈과 연동
SOAP란?
: https://2mukee.tistory.com/432
예제 코드
const axios = require('axios');
// XML 문서를 완성하고 전송까지 수행
async function request_xml(information, url) {
const xmlDoc = `<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/">
<ns1:MEMBER_REGEISTER>
<ns1:TWOMUKEECOMPANY>
<ns1:NAME>${information.name}</ns1:NAME>
<ns1:PHONE>${information.phone}</ns1:PHONE>
<ns1:COMMENT>${information.comment}</ns1:COMMENT>
</ns1:TWOMUKEECOMPANY>
</ns1:MEMBER_REGEISTER>
</soap:Body>
</soap:Envelope>`;
return axios.post(url, xmlDoc, {
headers: {
'Content-Type': 'text/xml',
SOAPAction: 'send_request',
},
});
}
async function main() {
const information = {
name: '2mukee',
phone: '010-1234-5678',
comment: `반갑습니다.`,
};
// 테스트 해야하는 url
const url = 'http://testsoap.com/node';
console.log('result =', (await request_xml(information, url)).data);
}
main();
: soap 통신의 경우 서버에 요청할 기능명을 기재하는 SOAPAction이라는 헤더가 존재한다
: SOAPAction 헤더는 soap 서버의 함수를 호출하는 것이기 때문에 정확하게 써야한다
: soap 통신 후에는 XML 태그 형식으로 response가 오기 떄문에 XML을 JSON으로 변환하는 라이브러리가 필요하다
XML을 JSON으로 변환하는 라이브러리
: fast-xm-parser
: xml2json
300x250
728x90
'Programming > NodeJS' 카테고리의 다른 글
NodeJS NODE_ENV 값으로 개발/배포 모드 분기하기 (0) | 2022.07.22 |
---|---|
NodeJS 개발을 위한 Eslint 및 Prettier 적용 방법 (0) | 2022.07.09 |
NodeJS와 ExpressJS에 대해서 (0) | 2022.05.05 |
[NodeJS] Youtube API v3 ESLint 기준에 맞춘 소스코드 (0) | 2022.04.30 |
노드 개발자라면 알아야할 NodeJS 라이브러리와 패키지 (0) | 2022.02.26 |