SOAP, REST czy GraphQL? Który do czego, który kiedy stosować? Zdania są podzielone

Żeby nie dostać oczopląsu i następującego po nim kociokwiku opracowałem (dla Was i dla siebie też!) tabelkę, w której zestawione są te trzy podejścia do wymiany danych w usługach. Opis każdego ze stylów jest uzupełniony poradnikiem wideo o jego implementacji

Jeśli Twoim zdaniem brakuje jakiejś kategorii w tabelce, to pomyślimy nad jej dodaniem, więc zachęcam do komentowania :) Miłej
SoftBull - SOAP, REST czy GraphQL? Który do czego, który kiedy stosować? Zdania są po...

źródło: comment_1589968127JVxI01jloEc8SlWUHNaqj0.jpg

Pobierz
#programowanie #rest #graphql #sieci

tl;dr: Mówienie, że w GraphQL cachowanie jest gorsze niż w REST to kłamstwo!!!

Czemu wszyscy mówią, że cachowanie w GraphQL jest słabsze w porównaniu do REST? Nie rozumiem tego.

Są dwie opcje.

1. Piszesz system i nie możesz wprowadzić cachowania.

Przykładowo masz forum i encję post. Pobierasz go: /api/post/12
I co, mogę gdzieś zcachować odpowiedź? Nie, bo ktoś może w każdej chwili edytować post i powinienem dostać nowe
@LiczbaPi: zależy gdzie jest cache:
- jak w przeglądarce, to nie da się powiadomić przeglądarki jednego użytkownika, że inny użytkownik zrobił edycję i przy następnym wejściu na stronę ma wyczyścić cache (nie mówimy o websocketach, bo mówimy o prostych synchronicznych usługach i np. odświeżeniu strony, a wtedy websocket się urywa),
- w Varnish nie wiem czy jest dostępne API do inwalidacji poszczególnych wpisów w cache,
- (samą implementację cache na backendzie
  • Odpowiedz
Cześć Mireczki, Na mój kanał wrzuciłem materiał o projekcie Hasura. Z użyciem tego narzędzia możecie bardzo łatwo zbudować własny interfejs #graphql do bazy PostgreSQL. Jak chcesz się pobawić GrahpQL z poziomu klienta to jest to idealne rozwiązanie (macie dostęp do real-time subskrypcji!) Myślę, że Hasura w najbliższym czasie mega się rozwinie, ponieważ:
✅ Jest to projekt open-source
✅ Łatwa integracja z funkcjami Serverless
✅ Możliwość integracji z istniejącymi RESTowymi endpointami
✅ Hasura
ArturEsportivo - Cześć Mireczki, Na mój kanał wrzuciłem materiał o projekcie Hasura. ...
Zapomniałem wam odpisać

@aso824: Nie lubię być uzależniony od zewnętrznych serwisów gdzie podstawowe działanie mojej aplikacji jest od nich uzależnione

@asdfghjkl: napisałem sobie całość z obsługą socket.io zatem problem rozwiązany
  • Odpowiedz
GraphQL to język zapytań dla API, który został opracowany przez Facebook i społeczność
Obecnie jest to już dojrzała technologia, która zyskała uznanie na rynku.
Pokaże Ci co wyróżnia tą technologię, oraz czy może ona zastąpić nam klasycznego REST'a?
Oczywiście jest też wersja wideo
Nowy następca REST? Poznaj GraphQL!


#programowanie #programista15k #naukaprogramowania #java #backend #admin #technologia #informatyk #ciekawostki #graphql #bezpieczenstwo #jvm #byczazagroda
SoftBull - GraphQL to język zapytań dla API, który został opracowany przez Facebook i...

źródło: comment_15826138539iBfhwkDDSjDKpDPWQv45x.jpg

Pobierz
@SoftBull GraphQL noob z tej strony :) (nie mam komercyjnych wdrożeń, ale się bawiłem) i tak mnie zastanawia kilka rzeczy, piszesz:

Dla kontrastu w przypadku wykorzystania GraphQL wystarczy wykonanie tylko jednego żądania. Dlatego ten przykład dobrze obrazuje moc jaką dostarcza GraphQL. Unikamy wykonywania serii zapytań, na rzecz prostego, precyzyjnego sposobu absorbowania danych. W związku z tym przekłada się to na wydajność aplikacji a także znacznie mniejszy ruch sieciowy.


To nie jest przypadkiem
  • Odpowiedz
Ktoś ma doświadczenie w budowaniu api z użyciem GraphQL?

Chciałbym ustawić sobie limit zapytań na np. 1/10s w przypadku REST korzystałem np. z https://github.com/animir/node-rate-limiter-flexible i dodawałem middleware na endpointy które miały być limitowane. Z racji tego, że tutaj mamy jeden endpoint a różne mutations, chciałem sobie zrobić coś podobnego tylko ten middleware wywoływać w konkretnym resolverze, czy takie podejście będzie ok? Czy jednak jest jakaś lepsza praktyka?

#webdev #javascript #graphql
  • Odpowiedz
Z tego miejsca chciałbym pozdrowić wszystkich 5 obserwujących tag #graphql i 3 obserwujących tag #neo4j i wszystkich 0 którzy nie obserwują tagu #graphdb ( ͡° ͜ʖ ͡°)

Widziałem, że neo4j ma na pokładzie algorytmy optymalizacyjne (być może GraphQL też takie ma). Ktoś z Was ma doświadczenie w używaniu tego do jakiś bardziej zaawansowanych optymalizacji, i może powiedzieć czy działa to tam wydajnie? Czy może lepiej mieć postawić jakieś
  • Odpowiedz
#programowanie #graphql
Zastanawiam się nad jedną z zalet użycia GraphQL, chodzi mi o pobieranie wszystkich potrzebnych danych za pomocą jednego requesta. Ok, ale przecież na przykładzie Sparinga, pewne rzeczy możemy sobie już wyciągnąć i zmapować w serwisie i to też zostanie zwrócone w jednym uderzeniu do aplikacji backendowej, nie potrzebujemy do tego kilku requestów. Może ktoś się coś na ten temat wypowiedzieć ? ( ͡º ͜ʖ͡º)
@D3xxT3r no można wszystko na siłę serializować w rest api ale przyjdzie co do czego i okazuje się, że dla mobile musisz zrobić osobne endpointy bo inne dane #!$%@?ą albo będziesz musiał coś zmienić i okazuje się że musisz api v2 wypuszczać
  • Odpowiedz
@D3xxT3r: ja to widzę tak - jeśli wystawiasz API które będzie konsumowane przez inne, niezależne od ciebie lub twojego zespołu apki, i chcesz umożliwić przeglądanie danych w sposób uniwersalny wedle życzenia konsumującego API, to GraphQL wydaje się być spoko. Natomiast jak sam konsumujesz te API, albo jest ten sam team który robi i backend i frontend, albo nawet różny lecz wymagania prezentacji danych zmieniają się nieczęsto i nie potrzeba takiej dowolności
  • Odpowiedz
mam model, który może mieć dowolną ilość zagnieżdżonych takich samych modeli (children). Jak to najsensowniej rozwiązać, jeżeli chcę zrobić query na całe to "drzewo" modeli w #graphql?
przykad o co mi chodzi:
mam model1, który ma children model 2 i model 3
model 2 ma children model 4 i model 5
model 5 ma children model 6
chcę zrobić query na wszystkie te modele ale po stronie frontendu nie znam poziomu
  • Odpowiedz
Zaczynam dodać #typescript do swojego projektu react+graphql i mam taką sytuację, z pozoru banalną ( ͡° ͜ʖ ͡°) Jak zapisać export default withRouter(nazwaKlasy) tak aby nie było default? Do tej pory miałem default i wszystko przerabiam na export bez default i mam teraz zagwostkę, która na pewno w rozwiązaniu jest banalna ( ͡° ʖ̯ ͡°)

#react #graphql #naukaprogramowania
#programowanie #webdev #graphql

Zastanawia mnie, czy GraphQL nie jest czasem aby dosyć niebezpieczny? Wiadomo, że niby można sprawdzać jakieś tokeny z claimami przy zapytaniu czy ktoś nie chce aby więcej niż mu wolno, ale sam fakt ujawniania struktury danych na zewnątrz mi się nie podoba.

Osobiście dużo bezpieczniej się czuję z jakimś RESTowym zapytaniem które po prostu coś zwraca ale nie wiadomo skąd i jak. Moim zdaniem lepiej na wszelki wypadek aby
@Narrorek: No ja rozumiem, że to jest wygodne od strony frontu, ale z punktu widzenia spokojnego snu w nocy i łatwiejszego debugowania, jeśli nie jestem czegoś w stanie w pełni zawrzeć w URLu - to jak dotąd co prawda na użytku wewnętrznym a nie jako publiczne API po prostu przekazywaliśmy POSTem JSONa z odpowiednimi flakami takimi aby backend był w stanie zrozumieć o co jest pytany - ale to pojedyncze przypadki
  • Odpowiedz
@Khaine: problemy które opisujesz aplikują się także do restowych api, więc nie widze tutaj szczególnych wad GraphQL

ale sam fakt ujawniania struktury danych na zewnątrz mi się nie podoba.


HATEOAS czy definicje API w stylu OpenAPI przedstawiają całe API i nikt nie narzeka na bezpieczeństwo. Bezpieczne API ma być bezpiecznie niezależnie od wysyłanych requestów, a nie od tego, czy ktoś wie jaka jest struktura

Poza tym kompletnie nie widzę tego w
  • Odpowiedz
spodziewałem się takiej odpowiedzi... mi chodzi o to, aby dowiedzieć się co teraz jest na topie... czym ludzie żyją, co jest HOT... :>
  • Odpowiedz
kod#programista15k na wykop specjalizujący się w #javascript #react #graphql mam ciekawy przypadek :D Postanowiłem sobie pstryknąć nowy projekcik, ale bez #redux tylko #graphql no i postawiłem sobie wszystko tak jak jest w docu napisane, ale mam błąd w konsoli "Module not found: Can't resolve 'graphql-anywhere/lib/async' in 'C:\js-projects\apollo-graphq-app\node_modules\apollo-link-state\lib'" ( ͡° ͜ʖ ͡°)

Znalazłem na necie, że to jakiś stary problem rozwiązany już dawno temu, ale o dziwo u
@JustJoinIT: Mireczki ( ͡° ͜ʖ ͡°) Specjalnie dla Was wybraliśmy najciekawsze artykuły/ tutorialne/ merytoryczne materiały do naszej Prasówki Technologicznej ( )

------------
-> Zapisz się na mirkolistę: https://mirkolisty.pvu.pl/list/kqLmWfjCV96YaWzk
-> AlertTag: #justnewsit
------------

#frontend

1. Jeśli masz podstawową wiedzę na temat #typescript i #nodejs, to czas bliżej zapoznać się z #graphql – językiem zapytań dla API, z którego korzystają tacy
JustJoinIT - @JustJoinIT: Mireczki ( ͡° ͜ʖ ͡°) Specjalnie dla Was wybraliśmy najcieka...

źródło: comment_0txtuCJTgsAyEBl7I6vLshewnWdi2mF5.jpg

Pobierz
@JustJoinIT: Jak co tydzień zapraszamy Was do Prasówki Technologicznej, czyli zbioru wartościowych materiałów z różnych dziedzin ( ͡° ͜ʖ ͡°) Dodatkowo wprowadziliśmy nowy podział. Od teraz podział będzie na:

-> Frontend
-> Backend
-> Inne

----------
-> Zapisz się na mirkolistę: https://mirkolisty.pvu.pl/list/kqLmWfjCV96YaWzk
-> AlertTag: #justnewsit
----------

FRONTEND

1. ECMAScript 2018, lub krócej ES2018, to wydawany co roku (a wcześniej trochę rzadziej) standard dla developerów
JustJoinIT - @JustJoinIT: Jak co tydzień zapraszamy Was do Prasówki Technologicznej, ...

źródło: comment_OlYyQEPcbeOhZMZiI7A0hcXUd8ZpaOg4.jpg

Pobierz