SOAP API 테스트 환경 준비
본 예제는 Google 확장 앱 중 Boomerang API 라는 Tool을 중심으로 작성되었습니다.
- Google 확장 앱 설치 링크 : 바로가기
SOAP(Simple Object Access Protocol)는 http 프로토콜으로 XML 기반의 메세지를 주고 받는 프로토콜 입니다. http 요청이 가능하고 SOAP 프로토콜에 대한 이해가 있으면 어떤 Tool에서도 테스트 가능합니다.
MS-WSUSSS 프로토콜 실습 예제
- 프로토콜 사용 Example 참고 링크 : 바로가기
- 해당 문서에서의 설명은 주요 파라미터만 설명 예정이다. 자세한 내용은 각 Method의 공식 문서를 참조
- 용어 사전 : 바로가기
Requirement
서비스 명설명서비스 링크
Server Sync Web Service | Microsoft Update 서버로부터 업데이트 정보 동기화를 위한 서비스 | 바로가기 |
DSS Authorization Web Service | Microsoft Update 서버로 부터 인증 정보를 받기 위한 서비스 | 바로가기 |
- 참고 : 바로 가기
- 확장 앱 설치 (Google 웹 스토어 링크)
- 확장 앱 실행 (실행 링크 ,확장 앱 업데이트에 따라서 링크는 변경될 수 있음)
- 상단에 언급한 두개의 서비스 등록 ( ADD SERVICE → SOAP [WSDL] 선택 → WSDL URL 입력 → LOAD )
GetAuthConfig : 쿠키를 얻기 위한 서비스 정보 조회
- 공식 문서 : 바로가기
요청 파라미터
없음
응답 파라미터
해당 응답은 크게 사용되지 않음
GetAuthorizationCookie : 인증 쿠키 발급
- 공식 문서 : 바로가기
요청 파라미터
* 서비스 명
요청하는 서비스 명으로 고정
/Body/GetAuthorizationCookie/accountName
* 요청 서비스 GUID
/Body/GetAuthorizationCookie/accountGuid
응답 파라미터
* 플러그인 ID
/Body/GetAuthorizationCookieResponse/GetAuthorizationCookieResult//PlugInID
* 쿠키 데이터
/Body/GetAuthorizationCookieResponse/GetAuthorizationCookieResult//CookieData
GetCookie : 쿠키 발급
- 공식 문서 : 바로가기
요청 파라미터
* 플러그인 ID
/Body/GetCookie/authCookies/AuthorizationCookie/PlugInId
GetAuthConfig의 Response에서 받은 PlugInId 정보
* 쿠키 데이터
/Body/GetCookie/authCookies/AuthorizationCookie/CookieData
GetAuthorizationCookie의 Response에서 받은 쿠키 데이터
응답 파라미터
* 쿠키 만료 시간
/Body/GetCookieResponse/GetCookieResult/Expiration
* 암호화된 쿠키
/Body/GetCookieResponse/GetCookieResult/EncryptedData
GetConfigData : 설정 데이터 요청
- 공식 문서 : 바로가기
요청 파라미터
* 쿠키 만료 시간
/Body/GetConfigData/cookie/Expiration
GetCookie의 Response의 쿠키의 만료 시간 값을 삽입
* 암호화 쿠키
/Body/GetConfigData/cookie/EncryptedData
GetCookie의 Response의 쿠키 데이터의 암호화 쿠키 값을 삽입
응답 파라미터
해당 파라미터는 크게 사용하지 않음.
GetRevisionIdList : 설정 데이터 요청
- 해당 요청은 업데이트 리스트의 양에 따라 오래 걸릴 수 있다.
- 공식 문서 : 바로가기
요청 파라미터
* 쿠키 만료 시간
/Body/GetConfigData/cookie/Expiration
GetCookie의 Response의 쿠키의 만료 시간 값을 삽입
* 암호화 쿠키
/Body/GetConfigData/cookie/EncryptedData
GetCookie의 Response의 쿠키 데이터의 암호화 쿠키 값을 삽입
* 필터 (앵커: 기준날짜)
/Body/GetRevisionIdList/filter/Anchor
해당 값으로 설정된 시간 이후에 출시된 업데이트 목록 가져옴 (ex. "2020-04-01 16:22:56.000")
* 필터 (업데이트 종류)
/Body/GetRevisionIdList/filter/GetConfig
TRUE (설정에 관련된 업데이트 항목만 요청) / FALSE (실제 업데이트에 관련된 항목만 요청)
* 필터 (기타)
/Body/GetRevisionIdList/filter/Get63LanguageOnly
FALSE(일반적으로 FALSE를 사용) / TRUE (DSS Protocol 1.1, USS Protocol 1.2인 경우만 TRUE)
응답 파라미터
* 마지막에 출시된 업데이트의 Anchor
/Body/GetRevisionIdListResponse/GetRevisionIdListResult/Anchor
* 업데이트 리스트
/Body/GetRevisionIdListResponse/GetRevisionIdListResult/NewRevisions
* 업데이트 ID
/Body/GetRevisionIdListResponse/GetRevisionIdListResult/NewRevisions/UpdateIdentity/UpdateID
* 업데이트 REVISION 번호
/Body/GetRevisionIdListResponse/GetRevisionIdListResult/NewRevisions/UpdateIdentity/RevisionNumber
GetUpdateData : 설정 데이터 요청
- 해당 요청은 응답 데이터 크기에 따라 오래 걸릴 수 있다.
- 공식 문서 : 바로가기
요청 파라미터
*쿠키 만료 시간
/Body/GetConfigData/cookie/Expiration
GetCookie의 Response의 쿠키의 만료 시간 값을 삽입
*암호화 쿠키
/Body/GetConfigData/cookie/EncryptedData
GetCookie의 Response의 쿠키 데이터의 암호화 쿠키 값을 삽입
*업데이트 ID
/Body/GetUpdateData/updateIds/UpdateIdentity/UpdateID
GetRevisionIdList의 Response에서 조회된 업데이트 정보 중 UpdateID 값을 삽입
*업데이트 REVISION 번호
/Body/GetUpdateData/updateIds/UpdateIdentity/RevisionNumber
GetRevisionIdList의 Response에서 조회된 업데이트 정보 중 RevisionNumber 값을 삽입
응답 파라미터
요청한 업데이트에 대한 정보
/Body/GetUpdateDataResponse/GetUpdateDataResult/updates
요청한 업데이트의 XML
/Body/GetUpdateDataResponse/GetUpdateDataResult/updates/ServerSyncUpdateData/XmlUpdateBlobCompressed
또는
/Body/GetUpdateDataResponse/GetUpdateDataResult/updates/ServerSyncUpdateData/XmlUpdateBlob
요청 업데이트의 파일 정보
/Body/GetUpdateDataResponse/GetUpdateDataResult/fileUrls
요청 업데이트의 파일 다운로드 URL
/Body/GetUpdateDataResponse/GetUpdateDataResult/fileUrls/ServerSyncUrlData/MUUrl
요청한 업데이트의 파일 다이제스트
/Body/GetUpdateDataResponse/GetUpdateDataResult/fileUrls/ServerSyncUrlData/FileDigest
'Language & Library > etc' 카테고리의 다른 글
[C/C++] Devtoolset으로 최신 컴파일러 적용 방법 (0) | 2020.09.04 |
---|---|
[PHP] 확장 모듈 빌드 방법 (PHP Extension Module) (0) | 2020.09.04 |
[C++] memory safety한 mysql_real_escape_string 래핑 함수 (0) | 2020.03.05 |
[Python] virtualenv 활성화 방법 (git bash, cmd, bash, window, linux, mac) (0) | 2020.02.25 |
[C++] python의 join 함수 간단하게 구현 (0) | 2019.08.14 |
댓글