-
Notifications
You must be signed in to change notification settings - Fork 0
006. 간편인증 다건 요청
Note
아래 예제는 모두 건강보험공단 > 건강검진결과 API 개발가이드를 기반으로 작성됐어요.
아래 예제는 현재 easycodef-java-v2
가 지원하는 간편인증
호출 방법만을 다뤄요.
다음 개발가이드 항목을 참고하면 이해가 쉬워요.
Tip
EasyCodef를 활용해 추가 인증을 진행하기 위해서 아래 과정이 선행되어야 해요.
Important
- 005. 간편인증 요청 (CF‐03002) 을 완전히 이해해야 다건요청을 원할하게 처리할 수 있어요.
Note
- 다건요청은 동일 기관의 여러 API를 1회 추가 인증으로 모든 응답을 가져올 수 있는 기능이에요.
-
easycodef-java-v2
는 다건 요청시 고객사가 쓰레드나 비동기 기능을 활용해 http 응답 대기를 해소하는 구현 과정을
JDK 21의 가상 쓰레드 기능을 활용해 자원 친화적으로 풀어낸 라이브러리예요.
Important
- 원하는 호출 상품이 다건요청을 지원하는 상품인지 먼저 확인해보세요.
개발가이드 > 상품 > API > #다건요청 - 다건요청은 동일 대상기관(organization)의 상품끼리 묶어서 호출이 가능합니다.
Tip
CF-03002
는 엔드유저에게 추가인증을 요청하고, 이와 관련된 데이터를 반환해요.
본 예제에서 다루는 간편인증 다건요청의 경우, 아래와 같이 간단하게 도식화 할 수 있어요.
간편인증은 엔드유저의 인증 완료 여부
만 확인 후, requestMultipleSimpleAuthCertification 메소드를 호출하면 쉽게 연동할 수 있어요.
Tip
단일 상품 요청 객체 생성은 003. 상품 요청 객체 생성을 참고하세요.
Important
EasycodefRequest request1;
EasycodefRequest request2;
EasycodefRequest request3;
EasycodefRequest request4;
EasycodefRequest request5;
List<EasyCodefRequest> requests = List.of(request1, request2, request3, request4, request5)
Important
Codef API 상품 다건요청 메소드
이번 예제는 고객사 서버에서 다건요청 간편인증
상품을 호출하고, CF-03002
응답을 받았다고 가정해볼게요.
아래 코드는 CF-03002
응답을 받았을 때, Client FE에 추가인증에 필요한 transactionId
를 반환하는 다양한 방법을 설명해요.
고객사의 아키텍쳐 설계 방식에 따라 아래 case중 선택해, client FE에 유효한 transactionId를 반환하고, 추가 요청간 이를 활용하세요.
EasyCodef easyCodef; // 002. 시크릿 키 기반 EasyCodef 객체 생성 Page 참고
List<EasyCodefRequest> requests = List.of(request1, request2, request3, request4, request5);
EasyCodefResponse response = easyCodef.requestMultipleProduct(requests);
return response;
Tip
transactionId만 반환하는 Dto 객체도 활용 가능해요.
EasyCodefResponse response = easyCodef.requestProduct(request);
CodefTransactionIdResponse transactionIdResponse =
new CodefTransactionIdResponse(response.transactionId);
return transactionIdResponse;
Warning
requestMultipleProduct 메소드는 아래의 예외 사항들을 같이 검증하고, 검증에 실패하면 예외를 반환해요.
- codef OAuth API와 통신에 실패하는 경우 (https://oauth.codef.io)
- codef API와 통신에 실패하는 경우 (https://api.codef.io | https://development.codef.io)
- codef API가 200 이외의 응답 코드를 반환하는 경우
Tip
1차 요청 성공 시 예시 응답
{
"result": {
"code": "CF-03002",
"extraMessage": "API 요청 처리가 정상 진행 중입니다. 추가 정보를 입력하세요.",
"message": "성공",
"transactionId": "673d39ddec82017e742f9f1c"
},
"data": {
"jobIndex": 0,
"threadIndex": 0,
"jti": "673d39ddec82017e742f9f1c",
"twoWayTimestamp": 1732065758977,
"continue2Way": true,
"extraInfo": {
"commSimpleAuth": ""
},
"method": "simpleAuth"
}
}
Important
단건 간편 인증 완료 요청 메소드
EasyCodef easyCodef; // 002. 시크릿 키 기반 EasyCodef 객체 생성 Page 참고
List<EasyCodefRequest> requests = List.of(request1, request2, request3, request4, request5);
EasyCodefResponse response = easyCodef.requestMultipleProduct(requests);
// 간편하게 트랜잭션 ID 파싱 가능
String transactionId = response.transactionId()
// 엔드유저가 간편인증을 완료 한 이후에, 트랜잭션 아이디를 파라미터로 아래 메소드 호출
List<EasyCodefResponse> addAuthResponses =
easycodef.requestMultipleSimpleAuthCertification(transactionId);
Tip
다건 요청 성공시 예시 응답
(예시 json 후략)
[
{
"result": {
"code": "CF-00000",
"extraMessage": "",
"message": "성공",
"transactionId": "673d39deec82017e742f9f1d"
},
"data": {
"resPreviewList": [],
"resReferenceList": [
{
"resType": "단위",
"resHeight": "Cm",
"resWeight": "Kg",
"resWaist": "Cm",
"resBMI": "kg/m2",
"resSight": "",
"resHearing": "",
"resBloodPressure": "mmHg",
"resUrinaryProtein": "",
"resHemoglobin": "g/dL",
"resFastingBloodSuger": "mg/dL",
"resTotalCholesterol": "mg/dL",
"resHDLCholesterol": "mg/dL",
"resTriglyceride": "mg/dL",
"resLDLCholesterol": "mg/dL",
"resSerumCreatinine": "mg/dL",
"resGFR": "mL/min",
"resAST": "U/L",
"resALT": "U/L",
"resyGPT": "U/L",
"resTBChestDisease": "",
"resOsteoporosis": ""
}
],
"resCheckupTarget": "코드에프",
"resResultList": []
}
},
{
"result": {
"code": "CF-00000",
"extraMessage": "",
"message": "성공",
"transactionId": "673d39dfec82470d00031458"
},
"data": {
"resPreviewList": [],
"resReferenceList": [
{
"resType": "단위",
"resHeight": "Cm",
"resWeight": "Kg",
"resWaist": "Cm",
"resBMI": "kg/m2",
"resSight": "",
"resHearing": "",
"resBloodPressure": "mmHg",
"resUrinaryProtein": "",
"resHemoglobin": "g/dL",
"resFastingBloodSuger": "mg/dL",
"resTotalCholesterol": "mg/dL",
"resHDLCholesterol": "mg/dL",
"resTriglyceride": "mg/dL",
"resLDLCholesterol": "mg/dL",
"resSerumCreatinine": "mg/dL",
"resGFR": "mL/min",
"resAST": "U/L",
"resALT": "U/L",
"resyGPT": "U/L",
"resTBChestDisease": "",
"resOsteoporosis": ""
}
],
"resCheckupTarget": "코드에프",
"resResultList": []
}
}
]
Important
꼭 다시 확인해주세요!
- requestMultipleSimpleAuthCertification() 메소드의 실행 결과 리스트에 단일 객체로
CF-03002
,CF-12872
응답이 반환된다면, 개발가이드 > 공통가이드 > 간편인증 재시도를 참고하세요.
- requestMultipleSimpleAuthCertification() 메소드는, 반드시 엔드유저가 간편인증을 마친 후에 요청해주세요.
MIT © Hectodata Co., Ltd | LICENSE