Intro
Poprzednio (tutaj) było o gzipe w odpowiedziach z aplikacji, tym razem o jeszcze jednym gzipie.
Problem
Ściągam dużo danych (nie big data, ale sam za to płacę), trzymam to w wersji surowej na przyszłość, bo gdy będę chciał wyświetlić więcej informacji, to mogę przejechać od początku wszystkie dane, tak mam plan :). Część surówki zostaje przeparsowana i zamieniona na jsona. Jeszcze jedna część z tych danych będzie zwracana do klienta, a klient (frontend) ten obsługuje gzipa – także combo profit; mniej miejsca, mniejszy transfer.
Mięso
Aby bogowie testów i abstrakcji byli zadowoleni byli zadowoleni wydzieliłem taki oto interface
Kod będzie mi ogarniać zapis, odczyt i usunięcie danych z bloba. Jak widać, nie przewiduje aktualizacji danych na blobkach.
Ciało (tłuste jak na bloga, wybaczcie) wygląda tak:
O wstrzykiwaniu zależności w Azure functions pisałem wcześniej (tutaj), o tym, że mogą być nulle także, aby czuć się bezpieczenie w kontruktorze dodałem sprawdzenie.
Gdy podejrzymy jakiegoś blobka w jego naturalnym habitacie będzie wyglądać tak:
Sama klasa jest jeszcze przed refaktoryzacją (wiecie terminy wpisów na bloga gonią 😉), poza tym sam nie wiem gdzie jeszcze, dojdę dalej. Ważne natomiast jest to, że dzięki takiej abstrakcji mogę robić CRD na i z chmurkę i trzymać tam zakompleksione skompresowane dane, oraz serwować jest do klienta także zakom skompresowane, tak ostatnia operacja jest już za darmo.
No to tyle na dziś, zdrowia!