Notice
Recent Posts
Recent Comments
Link
투케이2K
76. (Http/XMLHttpRequest) XMLHttpRequest 사용해 GraphQL Subscription 방식 API 요청 및 응답 확인 수행 본문
Http & Api
76. (Http/XMLHttpRequest) XMLHttpRequest 사용해 GraphQL Subscription 방식 API 요청 및 응답 확인 수행
투케이2K 2024. 11. 5. 20:26[개발 환경 설정]
개발 툴 : Edit++
개발 기술 : XMLHttpRequest
[소스 코드]
<!-- ===================================================================================================== -->
<!-- [자바스크립트 코드 지정] -->
<!-- ===================================================================================================== -->
<script>
/*
-----------------------------------------
[요약 설명]
-----------------------------------------
1. window.onload : 웹 페이지 로드 완료 시 호출 됩니다 (css , js 로드 완료)
-----------------------------------------
2. GraphQL 개념 학습 사이트 : https://blog.naver.com/kkh0977/223570768767
-----------------------------------------
3. 참고 사이트 : https://blog.naver.com/kkh0977/223600912678
-----------------------------------------
*/
// [html 최초 로드 및 이벤트 상시 대기 실시]
window.onload = function() {
console.log("");
console.log("======================================================");
console.log("[WebFile] : [window onload] : [start]");
console.log("======================================================");
console.log("");
// [주소 정의 실시]
var REQ_URL = "https://graphql.postman-echo.com/graphql";
// [데이터 전송 파라미터 정의]
var REQ_PARAM = {
"query" :"subscription Greetings {\n" +
" greetings\n" +
"}"
};
// [요청 데이터 확인 실시]
console.log("");
console.log("======================================================");
console.log("REQ_TYPE : " + "POST");
console.log("-----------------------------------------");
console.log("REQ_URL : " + REQ_URL);
console.log("-----------------------------------------");
console.log("REQ_PARAM : " + JSON.stringify(REQ_PARAM));
console.log("======================================================");
console.log("");
// [HTTP 요청 수행 실시]
var xhr = new XMLHttpRequest();
xhr.open("POST", REQ_URL, true); // [전송 타입]
xhr.setRequestHeader("content-type","application/json"); // [전송 헤더]
xhr.onreadystatechange = function() { // [응답 콜백 확인]
// [complete 완료 상태 인 경우]
if (xhr.readyState == 4) {
// [응답 상태 코드 확인 실시]
if (xhr.status == 200 || xhr.status == 201){
console.log("");
console.log("======================================================");
console.log("RES_STATUS : " + xhr.status);
console.log("-----------------------------------------");
console.log("RES_DATA : " + xhr.responseText);
console.log("======================================================");
console.log("");
}
else {
console.log("");
console.log("======================================================");
console.log("ERROR_STATUS : " + xhr.status);
console.log("-----------------------------------------");
console.log("ERROR_DATA : " + xhr.responseText);
console.log("======================================================");
console.log("");
}
}
};
xhr.send(JSON.stringify(REQ_PARAM)); // [HTTP 전송 수행]
};
</script>
[결과 출력]
======================================================
REQ_TYPE : POST
-----------------------------------------
REQ_URL : https://graphql.postman-echo.com/graphql
-----------------------------------------
REQ_PARAM : {"query":"subscription Greetings {\n greetings\n}"}
======================================================
======================================================
RES_STATUS : 200
-----------------------------------------
RES_DATA : :
event: next
data: {"data":{"greetings":"Hi"}}
event: next
data: {"data":{"greetings":"Bonjour"}}
event: next
data: {"data":{"greetings":"Hola"}}
event: next
data: {"data":{"greetings":"Ciao"}}
event: next
data: {"data":{"greetings":"Zdravo"}}
event: complete
data:
======================================================
반응형
'Http & Api' 카테고리의 다른 글
Comments