API - wysyłanie pełnego obiektu czy częściowo

0

Witam.
Nie wiem jak to zatytułować więc jest trochę nielogicznie.

Pytanie jest akurat proste. Jeżeli mam obiekt, w którego skład wchodzą inne obiekty np.

class Dokument
{
   int ID;
   string Numer;
   Kontrahent Odbiorca;
   Kontrahent Nabywca;
   Platnosci Platnosci;
}

class Kontrahent
{
   int ID;
   string Nazwa;
}

class Platnosc
{
   int ID;
   decimal Kwota;
}

Czy ściągać od razu cały obiekt z obiektami w środku, czy lepiej ściągnąć po kolei i złączyć po stronie klienta?
Mam pewne obawy, że mój obiekt może mieć tego dość dużo, a nie jestem pewien jak to wpłynie na wydajność.

PS.
Używam Dappera.

1

a klient coś zrobi z niepełnym obiektem? Na przykład pokaże tylko nagłówek a resztę na żądanie

0

Ściągnij cały obiekt, ważne jednak by wysyłać tylko to co naprawdę potrzebne.

0

Czy to nie jest tak, że API lepiej radzi sobie z małymi ale częstymi zapytaniami?

1

Presja medialna spowodowała że patrzymy schematycznie API=REST(+JSON)

A na tym rynek się nie zamyka. Polecam Apache Thrift oraz Google Procol Buffer (Protobuf).
To są nowoczesne implementacje starej filozofii Remote Procedure Call, czyli żądanie klienta to funkcja z argumentami (u Ciebie może to być bool shortVersion) itd itp

0
AdamWox napisał(a):

Czy to nie jest tak, że API lepiej radzi sobie z małymi ale częstymi zapytaniami?

A ktoś to zmierzył i tak stwierdził?

0

Ja to olałbym takie rozważania zanim nie masz w miarę gotowego produktu.

3

W przypadku komunikacji po HTTP 1.1 przeglądarki mają ograniczoną liczbę jednoczesnych requestów do tej samej domeny zwykle mniej niż < 10. Więc do niedawna było więc wręcz odwrotnie, wszystko się bundlowało/batchowało i chciało się robić tych requestów jak najmniej. W HTTP/2 już tego ograniczenia nie ma. Tyle że ciągle jest to komunikacja na jakiś dystans, a taką komunikację zwykle chcemy mieć jak "najmniej gadatliwą". Widzę jeden przypadek gdzie zwiększenie gadatliwości mogło by być rzeczywiście bardziej wydajne, gdyby te dokumenty w podzapytaniach mogły być cachowane na inny okres od tego dokumentu który je zawiera, lub pobierane z cache gdy wchodzą w skład innego dokumentu.

A w asp netcore 3.0 nadchodzi wsparcie dla api na Protobuf :), ale to dopiero w drugiej połowie roku.

0

Dzięki za info. Nikt niczego nie mierzył i nikt niczego nie stwierdził. Zwykła obserwacja i hipoteza, którą chciałem potwierdzić u ludzi bardziej doświadczonych.
Postaram się nie spamować głupimi pytaniami ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1