Jakie stacki polecicie na początek do nauki kodowania restful/crud aplikacji?
atutem będzie, jeżeli będzie dużo materiałów na temat danego stacka (najlepiej video-tutoriale na windowsie)
dodam, że jestem praktycznie zielony w temacie stronek restful, a bardzo chciałbym się tego porządnie nauczyć.
A więc od czego zacząć?
Chciałbym skończyć na czymś w stylu MERN/MEAN/MEVN, ale póki co wydaje mi się to zbyt trudne do ogarnięcia bez porządnych materiałów.
#programista #nodejs #react #rest #restful #
Hej mireczki, mógłby mi ktoś wytłumaczyć parę kwestii? Dlaczego HTTP Get nie powinien mieć ciała, a może przesyłać dane np. w URLce (stringi typu id, email itp.)? W jaki sposób rozwiązać problem kiedy chcę pobierać z API np. Userów bazując na mniej czy bardziej złożonych kryteriach, które najprościej byłoby wrzucić do jakiegoś innego obiektu (np. SearchCriteria) i posłać do api jako body? Ale jednocześnie robiąc to wszystko po Bożemu ze specyfikacją HTTP/REST?
@FaenTaDeg:

Be careful!!! GET method must be IDEMPOTENT, and must be "cacheable". If you send information in the body How can the system cache your request? HTTP allows caching GET request using only the URL, not the request body. For instance, this two requests: example.com { test:"some" } example.com { anotherTest:"some2" } are considered the same by the cache system: Both of them have exactly the same URL

https://stackoverflow.com/questions/5020704/how-to-design-restful-search-filtering#comment45639456_5020704

chyba chodzi
@FaenTaDeg: Chodzi o standardową implementację, w której przyjęło się że serwer obsługujący metodę GET nie przetwarza payloadu (chociaż mógłbyś go wysłać). Standardem przy większych zapytaniach jest używanie metody POST z payloadem w którym definiujesz SearchCriteria. To nie jest tak że każdy "POST" musi coś tworzyć; nie warto się trzymać sztywno tej reguły (można to zdefiniować na poziomie endpoint '/Search'). Poza tym jak świat długi i szerogi, znalezienie dobrego REST service gdzie
Witam wykopowych #programista15k

Pisałem ostatnio zadanko, które polegało na napisaniu usługi z interfejsem REST/HTTP, która umożliwi aktualizowanie wartości czujników i zwracanie wadliwych silników.

Serwer miał pobrać dane wejściowe zawierające listę czujników do silników z pliku w formacie YAML na GitHubie.

HTTP GET
Miał zwracać jako JSON listę silników, gdzie ciśnienie na czujniku spadło poniżej podanego poziomu i jednocześnie temperatura na co najmniej jednym czujniku wzrosła powyżej podanej wartości

HTTP POST
Miał zaktualizować
Pobierz Danger40 - Witam wykopowych #programista15k 

Pisałem ostatnio zadanko, które poleg...
źródło: comment_TUrW7xtZEgihOQAX2v14H2ZDOETrjIdF.jpg
@Danger40: tak na pierwszy rzut oka:
1. Package: weź je jakoś sensownie ponazywaj
2. pressure_threshold camelCase
3. Ta metoda getBrokenEngines do przepisania (rozbić na mniejsze, w logikę się za bardzo nie zagłębiałem, ale wydaje się że da rade to zrobić lepiej)
4. Do różnych typów sensora zrób sobie enuma a nie po Stringu sprawdzasz typ.
5. IEngineService -> EngineService, EngineService -> EngineServiceImpl
6. if (brokenEngines.isEmpty()) imo niepotrzebne, po prostu zwroc pusta
@Danger40:
- W Javie nie stosuje się konwencji nazewnictwa I przed interfejsem, jest to używane w C# ale raczej nie jest to mile widziane w Javie
- Wybór technologii dość osobliwy ale tutaj nie chcę się za bardzo czepiać ale fajnie używa się spring-boota, który zrobi Ci fatJara, którego z kolei możesz odpalić samym java -jar. Tylko, że tutaj wchodzi spring.
- Nie rób taki rzeczy e.printStackTrace();, do takich rzeczy
Jeżeli User posiada listę itemów które tylko on powinien móc wyświetlić, to jak to w REST lepiej zrobić?

Pierwsze rozwiązanie:
/users/{username}/items - i razem z requestem wysyłać coś, co pozwoli na potwierdzenie praw dostępu

Drugie rozwiązanie:
/items - i z requestem wysyłać dane, które pozwalają równocześnie stwierdzić o którego Usera chodzi oraz potwierdzić jego uprawnienia

Które rozwiązanie jest bardziej RESTowe? Bo sobie na papierze po raz pierwszy rozpisuję endpointy i się zastanawiam
@Wrath_of_the_Tyrant: pierwsze jeśli przedmioty są "wewnątrz" użytkownika np. przedmioty w ekwipunku postaci w grze
drugi jeśli jest to unikatowy podzbiór wszystkich przedmiotów dostępny dla tego użytkownika np: lista promocyjnych ofert produktów generowana na podstawie historii zakupów/ustawień

Ale generalnie dużo zależy od tego jak te dane mają być używane. Np. przekazywanie id usera w tokenie sesyjnym jest problematyczne jeśli do tych samych informacji powinien mieć np. admin - skąd wtedy wziąć informacje
@damian44__: najbezpieczniej byłoby zaimplementować tam "prawdziwe" logowanie się, czyli dostęp tylko zautentyfikowanego użytkownika, najwyżej żeby nie musieli za każdym włączeniem wpisywać tego samego niech jakieś ciasteczka/storage/sesja czy co tam jeszcze jest w electronie trzyma to w jakiejś pamięci apikacji, a plus będzie taki że robiąc kopiuj-wklej nikt nie zabierze dostępów ze sobą
Cześć mirki mam takie pytanko.

Tworzymy w firmie aplikację REST-ową, opartą o C# web api na backendzie oraz angular jako warstwa frontowa.

I zastanawiam się jak powinna wyglądać obsługa wszelkich grafik dołączonych np. do opisu produktu.

Backend i front znajdują się na osobnych serwerach.

Gdzie powinny być umieszczane pliki graficzne? Na serwerze frontowym, a bazie zapisane tylko ścieżki, które później zwracane byłby do klienta?

Czy może serwer powinien zwracać do warstwy frontowej
#programowanie #testowanieoprogramowania #java #rest
Jak robię testy do aplikacji webowej (Spring) i chcę przetestować rejestracje. Jak robicie test na poprawność danych:
1. Każdy test do osobnego pola np:
a) User z wszystkimi poprawnymi polami tylko jako email "123zlyEmail",
b) User z wszystkimi poprawnymi polami tylko za krótkie hasło "123"
c) User z wszystkimi poprawnymi polami tylko bez nazwiska null
2. Jeden test do wszystkich pól:
użytkownik z email "123zlyEmail", hasłem "!23" i

Testy dla pół

  • Każdy unit test sprawdzający jedną walidacje 88.6% (31)
  • Jeden unit test dla walidacji pół 11.4% (4)

Oddanych głosów: 35

Mirki programistyczne od Javy, ale nie tylko,

chwalę się wydaniem wersji 1.0.0 biblioteki Tomoko mojego autorstwa. Zapraszam na stronę główną, gdzie zajdziecie przykłady jak i dokładny opis działania.

Każdy projekt wymaga modyfikacji danych. W przypadku REST API można skorzystać z żądań PUT lub PATCH. PUT załatwia sprawę, ale nie zawsze chcemy przesyłać cały stan zasobu, stąd i PATCH jest potrzebny. Żeby dla każdej właściwości danego zasobu nie tworzyć osobny PATCH endpoint
@b0lec: Wg specyfikacji PUT musi być idempotentny, a PATCH może.

Łatwiej to wytłumaczyć na przykładzie matematyki. Wartość bezwzględna abs(x) jest funkcją idempotentną, ponieważ kilkukrotne jej użycie daje ten sam wynik co jednokrotne, czyli abs(abs(x)) = abs(x).

PUT ustala cały stan danego zasobu. Jeśli zaraz po sobie przyjdą dokładnie dwa takie same żądania PUT to pierwsze z nich zmiany wprowadzi, natomiast drugie już nie będzie miało czego zmieniać. Brak będzie jakichkolwiek efektów,
@b0lec: ETag się ma bardziej do GET niż do PUT czy PATCH. To jest po prostu jakby numer/hash/timestamp aktualnej wersji zasobu pod danym URLem i słuzy do cache'owania zasobów po stronie klienta.

Klient wysyła żądanie GET o zasób i razem z nim dostaje jego aktualny ETag. Powinien gdzieś ten ETag zapisać. Po pewnym czasie zasób mógł się zmienić i klient ponownie wysyła żądanie GET, które będzie w nagłówku "If-None-Match" zawierało znany
#androiddev #java #android #retrofit #rxjava #rest #geojson

Witajcie mirki, mam nastepujacy problem:
Uzywam RxJava 2 z Retrofitem, do Retrofita uzywam tez RxJava2 adapter, aby moc zwracac z resta Observables, do tego uzywam convertera gson : "com.squareup.retrofit2:converter-gson". Moj problem polega na tym, ze zaszla potrzeba parsowania GeoJson i nie jestem pewien jak to ogarnac za pomoca tych narzedzi, ktorych uzywam. Na chwile obecna stworzylem sobie concrete model z tablica double gdzie laduje sobie