[WebApp] Protocal22-API 사용예제
[WebApp] Protocal22-API 사용예제
시작하기 전에
이 문서는 Dabory OwnerKey API for WebApp을WebApp을 사용해하여 mainMain app과App과 guestGuest appApp을 개발시할 때 필요한 참고 정보를 안내제공하며
PHP Laravel을 활용한 WebApp 방식으로 Protocol22-API를 호출하는 방법을 설명합니다.
WebApp 사용예제
PHP Laravel을 통한 WebApp 방식의 Owner Key를Key 통한 Protocol22-API의API 호출방식은 다음과 같습니다.
1. .env 파일에 환경변수를 저장합니다.
#2. [protocol22]
OWNER_APP_NAME=OWNER APP의 NAME (자유롭게 지정)
GUEST_APP_OWNER_KEY=해당 APP에서 발급받은 OwnerKey 입력
GUEST_APP_OWNER_URL=Owner의 URL 입력
OWNER_APP_NAME2=OWNER APP의 NAME (자유롭게 지정)
GUEST_APP_OWNER_KEY2=해당 APP에서 발급받은 OwnerKey 입력
GUEST_APP_OWNER_URL2=Owner의 URL 입력
3. 세션에 저장된 GateToken과 frontUrl 정보를 활용하여 API 요청을 보냅니다.
4. API 응답을 받아 데이터를 처리합니다.
WebApp 사용예제
- env 파일에 환경변수 저장
먼저 .env 파일에 OwnerKey 및 APP 정보를 설정해야합니다.
변수명은 다운로드 받은 그대로 동일하게 작성해야 하지만 설정할 MAIN APP이 2개 이상이라면
개수의 맞게 변수 끝에 _ 숫자를 입력하여 변수명을 네이밍합니다.
# [protocol22]
OWNER_APP_NAME=YOUR_OWNER_APP_NAME # Owner APP의 이름 (자유롭게 지정)
GUEST_APP_OWNER_KEY=YOUR_OWNER_KEY # Guest APP에서 발급받은 OwnerKey 입력
GUEST_APP_OWNER_URL=YOUR_OWNER_URL # Owner APP의 URL 입력 (ex.www.daborysso.com)
OWNER_APP_NAME2=YOUR_OWNER_APP_NAME_2
GUEST_APP_OWNER_KEY2=YOUR_OWNER_KEY_2
GUEST_APP_OWNER_URL2=YOUR_OWNER_URL_2
OWNER_APP_NAME3=YOUR_OWNER_APP_NAME_3
GUEST_APP_OWNER_KEY3=YOUR_OWNER_KEY_3
GUEST_APP_OWNER_URL3=YOUR_OWNER_URL_3
- OwnerKey는 GUSET APP이 MAIN APP의 API를 호출할 때 사용되는 고유한 인증 키입니다.
- WebApp 방식에서는 OwnerKey를 .env 파일에 저장하고, API 요청 시 세션을 활용하여 사용합니다.
- Laravel에서 Owner API 호출
public function callOwnerApi($request)
{
// 요청된 'type'에서 숫자를 추출 (guest[1] → 1)
preg_match('/\d+/', $request['type'], $matches);
$index = isset($matches[0]) ? (int) $matches[0] : null;
// 세션에서 API URL 및 GateToken 조회
if ($index !== null) {
$apiUrl = session("OwnerGateToken.guest")[$index]['frontUrl'] ?? null;
$gateToken = session("OwnerGateToken.guest")[$index]['gateToken'] ?? null;
}
// API 요청 URL 설정
$request['url'] = $apiUrl . '/' .$request['url'];
$request['headers'] = ['GateToken' => $gateToken];
return $this->callApi($request);
}
- API 호출 예제
API를 호출하여 remote-signup-setup-get api의 데이터를 가져오는 예제입니다.
$officeInfo = $this->callApiService->callOwnerApi([
'url' => 'remote-signup-setup-get', // api 서버에 요청할 api url
'data' => [ // 요청할 data
'SetupCode' => 'passwd-policy',
'BrandCode' => 'member',
],
'type' => 'guest[1]' // env에 저장했던 owner app이 배열로 session에 저장되기 때문에 index로 접근
]);
이제 Dabory Protocol22-API for WebApp을 활용하여 안전하게 API를 호출할 수 있습니다.