Мы разрабатываем REST API, который, помимо прочего, будет использоваться веб-интерфейсом HTML5 через javascript. Приложение предназначено для использования в организации и обычно имеет около 300 пользователей, но мы хотим масштабировать до 1000 пользователей или около того.
Обычно соединения с API будут осуществляться в локальной сети, поэтому качество и задержка соединения будут хорошими, хотя не исключено случайное использование через Интернет, где соединения могут быть медленнее и с большим запаздыванием через 3G / 4G.
Два варианта, которые мы подумали:
Интерфейс сделает несколько одновременных асинхронных вызовов API для загрузки различных компонентов интерфейса.
- Плюсы: простота.
- Минусы: Больше подключений к серверу.
Контроллер внешнего интерфейса выполнит один вызов API, передавая в качестве параметров объекты, которые необходимо получить.
- Плюсы: только одно подключение к серверу, хотя сервер сделает несколько подключений к базе данных.
- Минусы: требуются механизмы как в интерфейсе, так и в API. Это усложняет дизайн.
Дополнительные пояснения: будут разные ресурсы ... / Product ... / Locations и т. Д. Эти ресурсы могут быть получены отдельно, но будет другой абстрактный ресурс ... / screen? Product & Locations, который будет извлекать оба за один вызов.