.. _restapiserver: REST API Server ======================= Genian ZTNA는 REST API Server를 ì‚¬ìš©ìž ë° ì¡°ì§ ì •ë³´ì˜ ì†ŒìŠ¤ë¡œ ì‚¬ìš©í• ìˆ˜ 있습니다. REST API Server ë™ê¸°í™”를 통해 ì‚¬ìš©ìž ê³„ì •ì„ ë¡œì»¬ì—서 ìƒì„±í•˜ì—¬ 관리 ë˜ëŠ” ì •ì±…ì— ì‚¬ìš© í• ìˆ˜ 있습니다. REST API Server ìš”ì²ì€ HTTP GET ë°©ì‹ì„ 사용하여 호출하며, ì‘답ë°ì´í„°í˜•ì‹ì€ JSON Object 형ì‹ì´ì–´ì•¼ 합니다. slack ì—서 사용ìžì •보는 users.list API를 통해서 ê°€ì ¸ì˜¬ 수 있습니다. Method URL ì€ https://slack.com/api/users.list ì´ë©° ìš”ì²ì€ GET ê³¼ POST ë°©ì‹ì„ ì§€ì›í•©ë‹ˆë‹¤. ZTNA ì—서 REST API ì •ë³´ëŠ” Swagger를 통해 ì œê³µí•©ë‹ˆë‹¤. :ref:`ì°¸ê³ - API 활용ë„구 ì œê³µ: Swagger <rest-api-guide-swagger>` REST API ì˜ ìƒì„¸ ë‚´ìš©ì€ :ref:`API ê°€ì´ë“œ <api>` 를 통해 확ì¸í• 수 있습니다. ì ‘ì† í…ŒìŠ¤íŠ¸ 하기 ---------------------- ì ‘ì† í…ŒìŠ¤íŠ¸ë¥¼ 수행하기 위해서는 다ìŒì— ê¸°ë³¸ê°’ì´ ìž…ë ¥ë˜ì–´ì•¼ 합니다. +--------------------+---------------------------------+--------------------------------------------------------+ | í•목 | ì„¤ì •ê°’ | 설명 | +====================+=================================+========================================================+ | REST API Server | 서버주소 | REST API를 í˜¸ì¶œí• ì„œë²„ IP를 ìž…ë ¥í•©ë‹ˆë‹¤. | + +---------------------------------+--------------------------------------------------------+ | | 페ì´ì§€ 파ë¼ë¯¸í„° ì´ë¦„ | ë‹¤ìˆ˜ì˜ ì¶œë ¥ê°’ì„ ì²˜ë¦¬í• íŽ˜ì´ì§€ 파ë¼ë¯¸í„° ì´ë¦„ì„ | + + +--------------------------------------------------------+ | | | ì„¤ì •í•©ë‹ˆë‹¤. | + +---------------------------------+--------------------------------------------------------+ | | 페ì´ì§€ 시작번호 | 페ì´ì§€ 시작번호를 ì„¤ì •í•©ë‹ˆë‹¤. | + +---------------------------------+--------------------------------------------------------+ | | 페ì´ì§€ 사ì´ì¦ˆ 파ë¼ë¯¸í„° ì´ë¦„ | 한 페ì´ì§€ì— ì¶œë ¥í• ê°¯ìˆ˜ë¥¼ ì§€ì •í•˜ëŠ” 파ë¼ë¯¸í„° ì´ë¦„ì„ | + + +--------------------------------------------------------+ | | | ì„¤ì •í•©ë‹ˆë‹¤. | + +---------------------------------+--------------------------------------------------------+ | | 페ì´ì§€ 사ì´ì¦ˆ | 한 페ì´ì§€ì— ì¶œë ¥í• ê°¯ìˆ˜ë¥¼ ì„¤ì •í•©ë‹ˆë‹¤. | + +---------------------------------+--------------------------------------------------------+ | | ë°ì´í„°ì†ŒìФ 구분값 | ë‹¤ìˆ˜ì˜ ë™ê¸°í™” 서버 사용 시 ì„¤ì •í•©ë‹ˆë‹¤. | +--------------------+---------------------------------+--------------------------------------------------------+ .. note:: ì ‘ì† í…ŒìŠ¤íŠ¸ê°€ ì •ìƒì 으로 ë˜ì§€ ì•Šì„ ê²½ìš° **ì •ì±…ì„œë²„** 와 **ë™ê¸°í™” 서버** ê°„ ì •ìƒì ì¸ í†µì‹ ì—¬ë¶€ë¥¼ ìš°ì„ ì 으로 확ì¸í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤. ë™ê¸°í™” ì„¤ì •í•˜ê¸° ------------------------ #. ìƒë‹¨ í•ëª©ì˜ **ì„¤ì •** 으로 ì´ë™í•©ë‹ˆë‹¤. #. 왼쪽 ì„¤ì • í•목ì—서 **사용ìžì¸ì¦ > ì •ë³´ ë™ê¸°í™”** 로 ì´ë™í•©ë‹ˆë‹¤. #. **ìž‘ì—…ì„ íƒ > ìƒì„±** ì„ í´ë¦í•©ë‹ˆë‹¤. **ê¸°ë³¸ì„¤ì •** 옵션 #. **ID** : ê³ ìœ ì˜ ì´ë¦„ì„ ìž…ë ¥í•©ë‹ˆë‹¤. #. **ë™ê¸°í™” 수행주기** : ë™ê¸°í™”ì— ëŒ€í•´ ì§€ì •ëœ ì‹œê°„ ë˜ëŠ”ì£¼ê¸°ì ì¸ ê°„ê²©ì„ ì„ íƒí•©ë‹ˆë‹¤. #. **ì •ì±…ì 용여부** : ë™ê¸°í™” 후 ë³€ê²½ì‚¬í• ë°˜ì˜ì„ 위해 ``ì 용함`` ì„ ì„ íƒí•©ë‹ˆë‹¤ . ë™ê¸°í™” ì„¤ì •ì´ ì—¬ëŸ¬ ê°œì¸ ê²½ìš° ``ì 용안함`` 으로 ì„¤ì •í•˜ê³ ë§ˆì§€ë§‰ ë™ê¸°í™”ë§Œ 사용하ë„ë¡ ì„¤ì • í• ìˆ˜ 있습니다. **ë°ì´í„°ë² ì´ìФ** 옵션 * DBíƒ€ìž…ì€ REST API Server 를 ì„ íƒí•˜ê³ , ì‚¬ìš©í•˜ê³ ìžˆëŠ” 서버주소를 ìž…ë ¥í•©ë‹ˆë‹¤. * 예) slackì˜ ê²½ìš° https://slack.com, ZTNAì˜ ê²½ìš° https://(ì •ì±…ì„œë²„IP):8443 * 페ì´ì§•ì€ ì§€ì›í•˜ì§€ 않으므로 페ì´ì§•ê´€ë ¨ ì„¤ì •ì€ ìž…ë ¥í•˜ì§€ 않습니다. #. **DB타입** : ``REST API Server`` #. **서버주소** : REST API Serverì˜ ì£¼ì†Œë¥¼ ìž…ë ¥í•©ë‹ˆë‹¤. #. **페ì´ì§€ 파ë¼ë¯¸í„°ì´ë¦„** : 서버측 페ì´ì§•ì„ í†µí•´ì„œ ì •ë³´ë¥¼ ê°€ì ¸ì˜¤ëŠ” 경우 페ì´ì§€ë²ˆí˜¸ë¥¼ ì˜ë¯¸í•˜ëŠ” 파ë¼ë¯¸í„° ì´ë¦„ì„ ìž…ë ¥í•©ë‹ˆë‹¤. #. **페ì´ì§€ 시작번호**: 서버측 페ì´ì§•ì„ í†µí•´ì„œ ì •ë³´ë¥¼ ê°€ì ¸ì˜¤ëŠ” 경우 페ì´ì§€ 시작번호를 ìž…ë ¥í•©ë‹ˆë‹¤. #. **페ì´ì§€ì‚¬ì´ì¦ˆ 파ë¼ë¯¸í„°ì´ë¦„** : 서버측 페ì´ì§•ì„ í†µí•´ì„œ ì •ë³´ë¥¼ ê°€ì ¸ì˜¤ëŠ” 경우 페ì´ì§€ë‹¹ ê°€ì ¸ì˜¤ëŠ” ë°ì´í„°ìˆ˜ë¥¼ ì˜ë¯¸í•˜ëŠ” 파ë¼ë¯¸í„° ì´ë¦„ì„ ìž…ë ¥í•©ë‹ˆë‹¤. #. **페ì´ì§€ì‚¬ì´ì¦ˆ** : 서버측 페ì´ì§•ì„ í†µí•´ì„œ ì •ë³´ë¥¼ ê°€ì ¸ì˜¤ëŠ” 경우 페ì´ì§€ë‹¹ ê°€ì ¸ì˜¤ëŠ” ë°ì´í„°ìˆ˜ë¥¼ ìž…ë ¥í•©ë‹ˆë‹¤. #. **ë°ì´í„°ì†ŒìФ 구분값** : ë°ì´í„°ì†ŒìФ êµ¬ë¶„ê°’ì€ ë™ê¸°í™” 한 ì‚¬ìš©ìž ì •ë³´ì˜ ì¶œì²˜ ì‹ë³„ì„ ìœ„í•œ 값입니다. **사용ìžì •ë³´** 옵션 * 사용ìžì •보출처를 ìž…ë ¥í• ë•Œ ìƒí˜¸ì¸ì¦ì„ API Key를 활용 한다면 /api/users.list?token=<API Token> 를 ìž…ë ¥í•˜ê±°ë‚˜, API 서비스 ê³„ì •ì„ í™œìš© 한다면 /api/users.list ë§Œ ìž…ë ¥í•©ë‹ˆë‹¤. ìžì„¸í•œ ë‚´ìš©ì€ :ref:`API í™œìš©ì„ ìœ„í•œ ìƒí˜¸ ì¸ì¦ 방법 <rest-api-guide-auth>` ì„ ì°¸ê³ í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤. * ì»¬ëŸ¼ëª…ì€ JSON Objectì—서 ê°’ì„ ì¶”ì¶œí•˜ê¸° 위한 경로를 ìž…ë ¥í•©ë‹ˆë‹¤. 경로는 . 으로 구분합니다. * 예) JSON Response [ { "id": "..", "name": ".." }, { "id": "..", "name": ".." } ] ì¸ ê²½ìš°ì— IDì»¬ëŸ¼ëª…ì€ id, ì´ë¦„ì»¬ëŸ¼ëª…ì€ name ì„ ìž…ë ¥í•©ë‹ˆë‹¤. * 예) JSON Response { "users": { "members" : [ { "id": "..", "name": ".." }, { "id": "..", "name": ".." } ] } } ì¸ ê²½ìš°ì— IDì»¬ëŸ¼ëª…ì€ users.members.id, ì´ë¦„ì»¬ëŸ¼ëª…ì€ users.members.name ì„ ìž…ë ¥í•©ë‹ˆë‹¤. #. **사용ìžì •보출처** : 사용ìžì •ë³´ë™ê¸°í™”를 위한 URI ì •ë³´ë¥¼ ìž…ë ¥í•©ë‹ˆë‹¤. ìž…ë ¥ëœ URIì„¤ì •ì€ ì„œë²„ì£¼ì†Œ ë’¤ì— ê²½ë¡œëª…ìœ¼ë¡œ 추가ë©ë‹ˆë‹¤.(예. /api/users.list 를 ìž…ë ¥í•œ ê²½ìš°ì— https://slack.com/api/users.list 를 호출합니다.) #. **사용ìžì¡°ê±´ë¬¸** : 사용안함. #. **사용ìžID컬럼명** : JSON Objectì—서 ì‚¬ìš©ìž ID ê°’ì˜ ê²½ë¡œë¥¼ ìž…ë ¥í•©ë‹ˆë‹¤.(예. users.id) #. **사용ìžì´ë¦„컬럼명** : JSON Objectì—서 ì´ë¦„ ê°’ì˜ ê²½ë¡œë¥¼ ìž…ë ¥í•©ë‹ˆë‹¤.(예. users.name) #. **부서ID컬럼명** : JSON Objectì—서 부서 ID ê°’ì˜ ê²½ë¡œë¥¼ ìž…ë ¥í•©ë‹ˆë‹¤.(예. users.department_id) #. 기타 추가 ì •ë³´ëŠ” JSON Objectì—서 ê°’ì˜ ê²½ë¡œë¥¼ ìž…ë ¥í•©ë‹ˆë‹¤. .. attention:: 그외 부서, ì§ê¸‰, 노드, 장비수명 ì •ë³´ 옵션 ì„¤ì •ì€ ì‚¬ìš©ìžì •ë³´ 옵션과 ë™ì¼í•œ ë°©ì‹ìœ¼ë¡œ ì„¤ì • ì‚¬ìš©í• ìˆ˜ 있습니다.