2014-12-28 4 views
0

Я создаю простую поисковую систему, которая принимает пользовательский запрос поиска в качестве входных данных и выводит список подходящих результатов поиска. Поисковые запросы в конечном итоге отправляются в сторонний API, что делает тяжелый подъем генерирующих результатов поиска.Архитектура веб-приложений для сторонних API-вызовов

Есть 2 способа можно обрабатывать этот рабочий процесс:

  1. Мой сервер принимает запросы пользователей, запрашивает API третьей стороны, и возвращает результаты пользователю

    или

  2. Смести эту ответственность на стороне клиента; клиент напрямую запрашивает сторонний API.

Каковы некоторые соображения при выборе между этими двумя методами?

+0

Невозможно ответить на этот вопрос. Он слишком широк. Он задает общее мнение, не указав никаких подробностей о конкретной задаче. Итак, как вы ожидаете получить ответ, который действительно имеет смысл? – arkascha

+1

[** Здесь **] (http://programmers.stackexchange.com/a/138565) - ответ, который вы могли бы принять во внимание. Это сводится к тому, насколько API-логика вы готовы разоблачить для внешнего мира и где, по вашему мнению, он будет работать быстрее или наиболее эффективным способом. – blex

+2

Лично я бы использовал опцию # 1. Это дает вам максимальную гибкость в будущем в случае внесения изменений в сторонний API. И я всегда предпочел бы реализовать любую бизнес-логику/преобразование на стороне сервера - кто знает, возможно, вы даже столкнетесь с другими пользовательскими интерфейсами, которые должны выполнять одни и те же поисковые запросы. –

ответ

1

Использование опции # 1 дает несколько преимуществ, таких как:

  • У вас есть один API для одного вида. Это привносит определенную ясность в вашу архитектуру.
  • Возможно, у вас много страниц/окон/независимо от того, что используется с одним и тем же API поиска. Если сторонний API изменится или перейдет в другой домен или что-то, что заставляет вас изменить код, вы можете исправить только один метод API на своем сервере, а не исправлять всех своих клиентов.
  • Вы можете выполнить некоторые дополнительные изменения в своем поисковом запросе, например, перевести его, если сторонняя поисковая система не может сделать это сама. Формально вы можете реализовать некоторую дополнительную логику.

Использование опции № 2 снижает нагрузку на ваш сервер.

+1

Кстати, если вы действительно сомневаетесь, вы можете выполнить трюк: с вашего клиентского интерфейса вызывается API вашего сервера, но из API сервера просто перенаправляет запрос клиента на сторонний API. Это уменьшит нагрузку на ваш сервер и даст вам возможность изменить свой выбор без изменения кода клиента. – Alagunto

Смежные вопросы