External Rest API 설정 방법

작성자 이경미 수정일 2022-12-16 16:46

#restapi, #external api, #rest server

들어가며

  • 여러개의 REST API 가 존재하는 경우 대표 API 로 호출하는 방법에 대해 알 수 있습니다.



내용

생성된 REST APP에서 두 개 이상의 Server 가 생성되는 경우가 많습니다. 

이 때, External 을 등록하여 대표로 지정될 rest api server 를 설정할 수 있습니다. 

external 로 지정된 server 가 있어도 다른 server 의 호출은 동일합니다. 


Server 의 api 를 호출하면 notebook api 를 사용하여 값을 반환합니다. 이 때, 학습된 데이터는 model service 를 통해 가져옵니다. 


❗️호출되는 api 는 Notebook 에서 지정한 api 를 통해 호출되는게 무슨 의미인가요?

server api 는 기본적으로 restapp 정보를 기반으로 endpoint 를 생성합니다. 그리고 호출되는 api 는 restapp > notebook 에서 지정할 수 있습니다. 


예시 )

RESTAPP > notebook > controller.py 

이해를 돕기위해 일부만 첨부하였습니다. 실제 코드 작성은 sodaflow 에서 제공하는 양식에 맞춰 진행합니다. 
import traceback
from flask import Blueprint, request, jsonify

from app.mod_service import services
from app.common.utils import as_json, create_logger, required_params

logger = create_logger(__name__)

# Define the blueprint: 'train', set its url prefix: app.url/test
mod_service = Blueprint('service', __name__, url_prefix='/api')


@mod_service.route('/test/predict/', methods=['GET', 'POST'])
@as_json
def test_predict():
    logger.info("test model service prediction")
    try:
        param = request.get_json(silent=True)
        return services.predict(param)
    except Exception:
        result = dict()
        result['success'] = False
        result['log'] = traceback.format_exc()
        logger.error(result['log'])
        return result


따라서 api 호출 시 " Endpoint + api 값 " 을 통해 값을 호출할 수 있습니다. 

API => https://sprk.sodaflow.co.kr:8443/test-restapp-server-1/api/test/predict


호출 결과

이 때, 고정된 API 로 지정한 restserver 를 통해 효율적인 업무를 진행할 수 있습니다.




External 설정 및 사용 방법

생성된 Server 중에서 External 을 활성화 시킵니다. 


대표로 지정된 API 는 다음과 같이 호출됩니다. 

API => https://sprk.sodaflow.co.kr:8443/test-restapp/api/test/predict

 

server 의 version 을 지정하지 않고 호출하여 고정된 값을 가질 수 있습니다. 

단, notebook 에 생성된 api 를 고정으로 지정해야합니다.

아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.

02-558-8300