2014-12-28 3 views
0

사용자가 입력 한 검색어를 입력 받아 적절한 검색 결과 목록을 출력하는 간단한 검색 엔진을 구축하고 있습니다. 검색 쿼리는 궁극적으로 제 3 자 API로 전송되기 때문에 검색 결과 생성이 어려워집니다.타사 API 호출을위한 웹 응용 프로그램 아키텍처

나는이 워크 플로우를 처리 할 수있는 2 가지 방법이 있습니다

  1. 내 서버는 사용자에게, 사용자 요청을 걸리는 타사 API를 조회하고 결과를 반환

    또는

  2. 이 책임을 클라이언트 측으로 옮깁니다. 클라이언트는 제 3 자 API를 직접 질의합니다.

이 두 가지 방법 중에서 선택할 때 고려해야 할 사항은 무엇입니까?

+0

이 질문에 답할 수 없습니다. 너무 광범위합니다. 특정 작업에 대한 세부 정보를 지정하지 않고 일반 의견을 묻습니다. 그렇다면 실제로 어떻게 해답을 얻을 수있을 것으로 기대하십니까? – arkascha

+1

[** Here **] (http://programmers.stackexchange.com/a/138565)는 사용자가 고려할 수있는 대답입니다. 그것은 얼마나 많은 API 로직을 외부 세계에 노출시키고, 가장 효율적/가장 효율적인 방식으로 실행하는지 생각해냅니다. – blex

+2

개인적으로 옵션 # 1을 사용합니다. 타사 API를 변경 한 경우 유연성이 극대화됩니다. 그리고 저는 항상 비즈니스 로직/변환 서버 측을 구현하는 것을 선호합니다. 동일한 검색을 수행해야하는 다른 UI로 끝날 수도 있습니다. –

답변

1

옵션 # 1을 사용하여 당신과 같은 몇 가지 장점을 제공합니다

  • 당신은 하나 개의보기에 대해 하나의 API가 있습니다. 그것은 당신의 아키텍처에 약간의 명료성을 가져다줍니다.
  • 동일한 검색 API를 사용하는 많은 페이지/창/기타가있을 수 있습니다. 타사 API가 변경되거나 다른 도메인으로 이동하거나 코드를 변경하게하는 경우 모든 클라이언트를 수정하는 대신 서버에서 API 메서드 하나만 수정할 수 있습니다.
  • 타사 검색 엔진이 자체적으로 검색 할 수없는 경우 번역과 같은 검색 쿼리를 사용하여 몇 가지 추가 변경 작업을 수행 할 수 있습니다. 공식적으로 몇 가지 추가 로직을 구현할 수 있습니다.

옵션 # 2를 사용하면 서버 부담이 줄어 듭니다.

+1

그런데 정말로 망설이면 클라이언트 측에서 서버의 API를 호출하지만 클라이언트의 요청을 제 3 자 API로 리디렉션하는 것만으로 서버의 API에서 트릭을 수행 할 수 있습니다. 이렇게하면 서버의 부담이 줄어들고 클라이언트의 코드를 변경하지 않고 선택 사항을 변경할 수 있습니다. – Alagunto

관련 문제