2017-12-21 14 views
0

REST API에서 다른 REST API를 호출하는 것이 적절한 프로그래밍 실습/소프트웨어 설계입니까? 그렇지 않은 경우이 시나리오를 처리하는 데 권장되는 방법은 무엇입니까?다른 REST API를 호출하는 REST API

답변

1

질문을 올바르게 이해하면 이 매우 일반적입니다. 당신은 다음을 설명하는

, 나는 가정 :

클라이언트는 서버 1이 요청을 서비스의 과정에서, API 서버-2로 또 다른 요청을에 API 호출을의 소요 Server-2의 응답, 다시 포맷 또는 데이터 추출을 수행하며 클라이언트가 응답하는 패키지를 ?

이런 종류의 일은 항상 발생합니다. 단점은 Server-1과 Server-2 사이의 연결이 매우 짧은 대기 시간 (예 : 동일한 네트워크에 있음)이 아니라면 사용되는 대역폭이 작기 때문에 클라이언트는 응답. 분명히 두 개의 백엔드 서버간에 캐싱 (caching)을하여이를 완화 할 수 있습니다.

요청에 응답하기 위해 데이터베이스에 SQL 쿼리를 보내는 것은 Server-1과 거의 같습니다.

질문의 다른 해석은 Server-1이 Server-2가 Server-1이 비동기 적으로 선택하여 실행하는 작업을 대기 시키도록 요청하는 것일 수 있습니다. 이것은 또한 매우 일반적입니다 (Google이 웹 사이트를 크롤링하는 방식입니다). 이 시나리오에서는 Server-1이 서버 -2가 수행 한 작업 결과를 기다리지 않고 즉시 클라이언트에 응답하게됩니다. 이 경우 메시지 대기열 또는 데이터베이스 테이블은 일반적으로 서버 간의 중개자로 사용됩니다.

+0

매우 유익하고 내 질문에 답변 한 무리를 가져주세요. – MontyTheMack

0

또 다른 접근법은 REST API (1)가 요청 세부 사항을 대기열 테이블에 저장하는 것입니다. 100milliseconds라고 할 때마다 대기열 테이블을 확인할 백엔드를 만듭니다. 그 백엔드는 다른 REST API (2)를 호출 할 사람이 될 것입니다.

REST API (1)에서 대기열의 트랜잭션이 처리되었는지 확인하는 루프를 작성하십시오. 그렇다면 프로세스 세부 정보를 얻고 클라이언트에게 반환하십시오. 처리가 완료 될 때까지 루핑을 계속하십시오.