Pracujemy nad interfejsem API REST, który między innymi będzie używany przez interfejs HTML5 za pomocą javascript. Aplikacja jest przeznaczona do użytku w organizacji i zwykle ma około 300 użytkowników, ale chcemy dobrze skalować do około 1000 użytkowników.
Zwykle połączenia z interfejsem API będą wykonywane w sieci LAN, więc jakość i opóźnienie połączenia będą dobre, chociaż nie jest wykluczone sporadyczne korzystanie z Internetu, gdzie połączenia mogą być wolniejsze i z większym opóźnieniem przez 3G / 4G.
Dwie opcje, które pomyśleliśmy to:
Interfejs wykona kilka jednoczesnych asynchronicznych wywołań interfejsu API, aby załadować różne komponenty interfejsu.
- Plusy: Prostota.
- Minusy: więcej połączeń z serwerem.
Kontroler interfejsu wykona pojedyncze wywołanie interfejsu API, przekazując parametry, które obiekty należy pobrać.
- Plusy: tylko jedno połączenie z serwerem, chociaż serwer nawiąże kilka połączeń z bazą danych.
- Minusy: Wymaga mechanizmów zarówno w interfejsie użytkownika, jak i interfejsie API. To komplikuje projekt.
Dalsze objaśnienia: Będą różne zasoby ... / Produkt ... / Lokalizacje itp. Te zasoby można pobrać osobno, ale będą też inne zasoby abstrakcyjne ... / screen? Produkt i lokalizacje, które pobiorą oba w jednym połączeniu.