Skip to main content

[WebApp] Protocal22-API 사용예제 (PHP)

[WebApp] PROTOCOL22-API 사용예제

 시작하기 전에

이 문서는 Dabory OwnerKey API for WebApp을 사용하여 Main App과 Guest App을 개발할 때 필요한 참고 정보를 제공하며
PHP Laravel을 활용한 WebApp 방식으로 PROTOCOLl22-API를 호출하는 방법을 설명합니다.

 WebApp 방식의 Owner Key API 호출 흐름

1. .env 파일에 환경변수를 저장합니다.

2. Laravel callOwnerApi() 함수를 통해 Owner APP에 등록된 API 서버로 요청을 보냅니다.

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란?
  • OwnerKey는 GUSET APP이 MAIN APP의 API를 호출할 때 사용되는 고유한 인증 키입니다.
  • WebApp 방식에서는 OwnerKey를 .env 파일에 저장하고, API 요청 시 세션을 활용하여 사용합니다.

- Laravel에서 Owner API 호출
이제 callOwnerApi() 함수를 이용하여 MAIN APP의 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를 호출할 수 있습니다.