@MarcinOrlowski: jak ja nienawidzę takich głupich API. Niby się powiodło, ale się w------o. No i na dodatek 500... co mnie obchodzi twoje 500, weź się ogarnij i napraw swoje API. Ja wysłałem złe dane i Twoja usługa się poskładała? Czemu nie walidujesz danych na wejściu i nie odeślesz 400 tylko pozwalasz aby się usługa złożyła.
@R4vPL: Co ma RFC do tego ze nie uważam REST API za jedyne sluszne podejscie? Wystarczy Ci REST to sie trzymaj RFC i będziesz miał prościej + masę gotowych bibliotek. Ale nie zawsze API = REST API co jak widać nie dociera. @EmcePomidor2: Oczywiscie ze ma znacznie czy to REST czy nie i to rzekłbym fundamentalne. Poza tym argument o nie istniejacej stronie jest całkowicie bez sensu. Zrobisz
@EmcePomidor2: Ale wiesz ze jedno drugiego nie blokuje? ( ͡°͜ʖ͡°) IMHO dobrze zaprojektowane api ma podstawowa strukture odpowiedzi stała, czy to błąd czy Ok niektore pola sa zawsze. Ale jak ktos jakes pole dodaje do odpowiedzi bo jest błąd ale inaczej nie to jest to zwyczajnie gówniane API i tyle.
@MarcinOrlowski: wszystko co napisałem jest odpowiedzą na Twoje stanowisko, które zamieściłeś w tym komentarzu, dokładnie na słowa
No i prawidłowo
Nie, odpowiedź 200 z API po wystąpieniu błędu nie jest prawidłowa. Specyfikacja REST jest taka, że 200 ma oznaczać całkowicie poprawny przebieg. Każda odpowiedź z błędem oznacza konkretną sytuację, a body w odpowiedzi zawiera szczegóły. Jeśli tak projektujesz API, to nie ogarniasz prostego REST. Pewnie jeszcze projektujesz endpointy jak
ale wiesz że nie masz żadnej racji, przecież taki prosty kod nawet nie zadziała z twoim cudownym kodem 200 i trzeba jakieś ify i inne potwory trzaskać. po coś mądre głowy, mądrzejsze
@Poldek0000: Pomijając już sensowność takiego rozwiązania to mam bekę jak niektórzy myślą, że HTTP == REST (to samo widać tutaj w komentarzach) i według nich każde api wystawione po HTTP musi być RESTowe.
Gdzie prawda jest taka, że w większości przypadków jak wystawiasz API tylko na potrzeby swojego frontu (teraz przecież każdy musi wystawiać API bo front pisze w SPA ( ͡°͜ʖ͡°)) to nie
źle op. Doucz się. Odpowiedź REST ma stosować poprawne nagłówki HTTP
Sam się doucz xD Dokument RFC który linkujesz nie ma statusu standardu a jest jedynie propozycją. Istnieje kilka różnych wersji takich dokumentów. Statusy HTTP nigdy nie były jakoś specjalnie przemyślane i to jak ich używać większości z nich jest zostawione wyobraźni programistów. GraphQL np. zawsze zwraca 200 i też jest spoko.
@MarcinOrlowski: jak ja nienawidzę takich głupich API. Niby się powiodło, ale się w------o. No i na dodatek 500... co mnie obchodzi twoje 500, weź się ogarnij i napraw swoje API. Ja wysłałem złe dane i Twoja usługa się poskładała? Czemu nie walidujesz danych na wejściu i nie odeślesz 400 tylko pozwalasz aby się usługa złożyła.
@eloar: życia nie znasz? Jeśli klient dla firmy jest strategiczny to ma zawsze
@some_ONE: no tak, ja założyłem oczywiście publiczne API. Wewnętrzne często mają to w p-----e - tylko najgorrzej jak ktoś potem wpada na genialny pomysł wystawienia tego api xD Weź to przerabiaj albo ucz użytkownika swojego cudownego standardu, bo przeciez nie musiało być restowe :)
tylko najgorrzej jak ktoś potem wpada na genialny pomysł wystawienia tego api
@iAmTS: No cóż, wtedy trzeba sprawę postawić jasno - wewnętrzne api nie nadaje się do wystawienia publicznego. Sam sposób uwierzytelniania będzie pewnie całkiem inny.
@EmcePomidor2: i czego niby dowodzi twoj skrypcik? tego ze przykryłeś potencjalny problem HTTP i zeby faktycznie ustalić co poszlo nie tak, to jednak i trzeba trochę więcej kodu napisać niż wyświetlić glupkowaty komunikat "pa mati 2001" i pora na CS? Sam kod HTTP zwyczajnie nic konkretnego Ci i tak nie powie, powinienes to wiedziec. Ify i tak trzaskać musisz chyba ze naiwnie oczekujesz ze kod bledu zawiera payload a jak
źródło: comment_1661241030Q6zeOFVUqPPpeu9NMeA6m0.jpg
Pobierz@EmcePomidor2: Oczywiscie ze ma znacznie czy to REST czy nie i to rzekłbym fundamentalne. Poza tym argument o nie istniejacej stronie jest całkowicie bez sensu. Zrobisz
@MarcinOrlowski: ale wiesz że oprócz kodu 500 można wysyłać content? ( ͡° ͜ʖ ͡°)
ale według ciebie to bez sensu przecież komunikacja się powiodła ( ͡° ͜ʖ ͡°) 200 się należy
Nie, odpowiedź 200 z API po wystąpieniu błędu nie jest prawidłowa. Specyfikacja REST jest taka, że 200 ma oznaczać całkowicie poprawny przebieg. Każda odpowiedź z błędem oznacza konkretną sytuację, a body w odpowiedzi zawiera szczegóły. Jeśli tak projektujesz API, to nie ogarniasz prostego REST. Pewnie jeszcze projektujesz endpointy jak
ale wiesz że nie masz żadnej racji, przecież taki prosty kod nawet nie zadziała z twoim cudownym kodem 200 i trzeba jakieś ify i inne potwory trzaskać. po coś mądre głowy, mądrzejsze
Gdzie prawda jest taka, że w większości przypadków jak wystawiasz API tylko na potrzeby swojego frontu (teraz przecież każdy musi wystawiać API bo front pisze w SPA ( ͡° ͜ʖ ͡°)) to nie
kuźwa no curlem sobie w terminalu strzel i dzięki temu że masz kod 500 to będziesz miał exit code <> 0
#!/bin/shSam się doucz xD Dokument RFC który linkujesz nie ma statusu standardu a jest jedynie propozycją. Istnieje kilka różnych wersji takich dokumentów. Statusy HTTP nigdy nie były jakoś specjalnie przemyślane i to jak ich używać większości z nich jest zostawione wyobraźni programistów. GraphQL np. zawsze zwraca 200 i też jest spoko.
W tym momencie nie ma ŻADNEGO oficjalnego
@eloar: życia nie znasz? Jeśli klient dla firmy jest strategiczny to ma zawsze
@iAmTS: No cóż, wtedy trzeba sprawę postawić jasno - wewnętrzne api nie nadaje się do wystawienia publicznego.
Sam sposób uwierzytelniania będzie pewnie całkiem inny.