od Podstaw
6 godz. 26 min · Go · Full-stack i Programowanie
Piotr KrzesajW Go wszystko opiera się o typy. Czym one są? Tak zwane typy proste(string, int, float itd.) to tylko początek, interfejsy, struktury i nie tylko. Pokażę Ci jak używać wielu wątków Go i jakie są sposoby komunikacji między nimi, a także opowiem i pokażę na praktycznych przykładach jakie zagrożenia niesie ze sobą wykorzystywanie wielowątkowości.
W Go nie mamy obiektowości znanej z wielu innych języków. Posiada zalążki obiektowości ale sprawia to wielu osobom problemy jak podejść do architektury aplikacji. Nauczę Cię jak podejść do funkcyjności w taki sposób aby wciąż nawet duże aplikacje były łatwo rozwijalne lub co ważniejsze, była możliwość podzielenia ich na mniejsze mikroserwisy gdy zajdzie taka potrzeba.
Wśród programistów można usłyszeć głosy że w Go wielowątkowość jest świetnie rozwiązana i trudno się z tym nie zgodzić ale warto pamiętać że nasze mózgi działają jednowątkowo i często pomijamy zagadnienia takie jak wyścig wątków, deadlock i inne wyzwania, które stawia przed nami praca na dzisiejszych procesorach. Pokażę i wytłumaczę Ci w praktyce większość z nich i jak sobie z nimi radzić i na co uważać. Jeśli nie pracowałeś z językami wielowątkowymi to ta sekcja jest specjalnie dla Ciebie.
Zastanawiałem się wiele razy czy nie istnieje taka technologia w której piszę sobie jeden pliczek i z tego pliku do każdego języka mogę wygenerować sobie klienta i serwer jedną komendą. To jest w wielkim skrócie GRPC, nie musisz się przejmować czy używasz HTTP 1.1/2.0, czy używasz websocketów do transmisji, czy przesyłasz dane w formacie JSON, XML, Protobuf, czy jest moje API kompatybilne wstecz. Tym wszystkim zajmuje się GRPC. Wyjaśnię Ci czym dokładnie jest, dlaczego jest super i wreszcie jak tego używać razem z językiem Go. Napiszemy praktyczny projekt chatu w którym wykorzystamy funkcję server-streaming.
Pisząc aplikację chcemy aby uruchamiała się ona tak samo niezależnie czy uruchamiamy ją na Linuxie, macOS czy na Windowsie i z pomocą przychodzi nam Docker. Pokażę Ci jak z gotowej aplikacji napisanej w Go stworzyć obraz Dockerowy aby móc go uruchamiać na swoim komputerze bądź serwerze. Pokażę Ci również jak nasz obraz Dockerowy połączyć z bazą danych za pomocą Docker Compose aby móc cieszyć się działającą aplikacją uruchamianą jedną komendą.
Kurs Go nie mógłby obejść się bez serwera HTTP stworzonego tylko z pomocą biblioteki wbudowanej w język Go. Dokładnie tak, nie musisz instalować nic poza językiem i już możesz tworzyć serwery co jest świetną wiadomością. Następnie pokażę Ci popularną bibliotekę Gin do tworzenia serwerów. Dzięki temu zobaczysz różnice i ocenisz czy warto zostać przy wbudowanej bibliotece czy może używać zewnętrznych.
Jak w każdym języku serwerowym tak i w Go możemy się podłączyć pod bazę danych. Krok po kroku wyjaśnię Ci jak to zrobić prosto i przyjemnie używać baz SQL, które od dziesiątek lat cieszą się niezwykłą popularnością. Migracje, zapytania czy dbanie o połączenie to nie będzie dla Ciebie nic trudnego.
Ten Kurs powstał z myślą o osobach, które chciałyby poszerzyć swoją wiedzę o język Go. Zakłada on że posiadasz już wiedzę z minimum jednego innego języka programowania i wiesz w jaki sposób działa komunikacja po protokole HTTP. Możesz też znać Go i chcieć zobaczyć jak dzielić programy na paczki tak aby były łatwo rozwijalne w przyszłości.
Poprzednim razem prezentowaliśmy nasz język w którym mamy położenie użytkownika
mamy logowanie na autoryzację o której zapomniałem.
Mamy też pobieranie informacji o użytkowniku w tej lekcji.
Musimy to wszystko spiąć w jedno i
stworzyć API czyli udostępniamy to za pomocą HTTP.
Do tego celu użyjemy
biblioteki Jane którą pokazałem w poprzednich w jednej z poprzednich lekcji
i najpierw żeby ją użyć musimy ją dodać w tym celu musimy wejść sobie do naszej
przeglądarki wejść na stronę Google a następnie wpisać sobie link
Jane wchodzimy na nasze i kupujemy z adresu URL naszą bibliotekę.
Następnie wchodzimy do naszego terminala i
wpisujemy go obserwujemy naszego naszego kina.
Po instalacji musimy sobie stworzyć paczkę
dlatego że mamy tutaj piekarnię mamy to co mamy to Józek i.
Nazwijmy sobie nasz
nasze miejsce gdzie będziemy przetrzymywali nasze interfejsy czyli np.
serwer HTTP albo np.
nie będziemy chcieli używać HTTP ale np.
będziemy chcieli w czyli taki czat na żywo albo będziemy chcieli np.
w poniedziałek
to ja będę pokazywał następnej lekcji umieścił to w katalogu adapter.
I w tym katalogu adapter stworzymy
paczkę HTTP i w katalogu HTTP stworzymy nowy plik to go nazwiemy np.
serwera.
Oczywiście stworzymy się w tym katalogu więc to przeciąganie katalogu http.
I to będzie paczka która się będzie nazywała paczka http.
Tworzymy sobie w niej nowy program to będzie np.
Józek serwer.
I to będzie interfejs i w tym interfejsie będziemy mieli zadeklarowanych wszystkie
metody które będziemy udostępniać przez http.
To na pewno będzie klient user i tu będziemy przekazywać jakiś model.
Teraz ten model stworzymy sobie do tego
a także paczce HTTP stworzymy sobie nową nowy plik o nazwie Models
i tu będą znajdować się wszystkie nasze modele które będziemy zwracać
użytkownikowi bądź o niego od niego wymagać.
Wracamy do naszego pliku z serwera kropka
go i tutaj w tej paczce mamy czyli musimy przyjąć od niego e-mail
imię nazwisko i hasło więc wracamy z powrotem do modelu
stworzymy kwit user Request i to będzie struktura
i w tej strukturze będziemy wymagać od użytkownika imienia nazwiska.
Hasła.
I mimo.
Nie mają.
No dobrze ale musimy dać tak dlatego że ta
struktura będzie lądowała bezpośrednio w przeglądarce lub jako zwrotka zapytania
więc musimy nazwać często nowe pola poprawny sposób tak jak
i większość języków tego jednak mimo wszystko wymaga jako standardowy czyli
mimo wszystko to będzie kamerka z małej litery bo to jest pole a nie obiekt.
No i mamy nasz Quest stwórzmy sobie też
ich Józek z Polski to będzie nasz projekt
i my nie chcemy tutaj nic użytkownikowi tak naprawdę zwracać poza tym że jeśli
zwrócimy mu to jest to raczej pusty obiekt.
Oznacza to że stworzyliśmy użytkownika następnie musimy stworzyć sobie nasz login
Request i to będzie też struktura i my wymagamy od użytkownika e-maila i hasła.
Kupujemy to z poprzedniej struktury tak
aby nie pisać wszystkiego od początku jako login i sposób
do niego akces token czyli to będzie Access Token i to będzie string.
I to pole będzie się nazywało
Access Token No dobrze mamy logowanie mamy rejestrację teraz musimy jeszcze Get
i user czyli musimy zwrotka zwrot użytkownika
czyli będziemy podawać parametr identyfikator użytkownika albo
nie będziemy podawać nic bo na podstawie akceptacja będziemy wiedzieć jaki to jest
użytkownik i będziemy zwracać informacje takie jak e-mail.
Będziemy zwracać nam który będzie też z treningiem i będzie nas.
Czy też będzie z nim.
Może po prostu kopiują to wszystko z tworzenia słynny z tego hasła.
No dobrze mamy logowanie mamy tworzenie
konta mamy wszystkie modele wracamy do implementacji czyli żeby stworzyć
użytkownika musimy przekazać mu języka czyli to będzie user request.
Tylko że to będzie zapytanie więc tu będziemy używać biblioteki
więc nie będziemy przyjmować tych danych musimy je obsłużyć więc będziemy
przyjmowali kontekst ja to skróty do zwykłego ch i tu będzie
wskaźnik do gmin kropka kontekst kontekst posiada wszystkie informacje na
temat zapytania i możemy też do niego wysyłać odpowiedzi.
Więc kiedy user.
Mamy też metodę login i to też przyjmuje nasze zapytanie kontekst.
Mamy też metodę autor raz.
Czyli chcemy dawać użytkownika.
Pokażę ci bardzo ciekawy sposób w jaki sposób możemy pokazywać użytkownika
jeden raz a nie za każdym razem przy każdym pytaniu i mamy info.
I tu też będzie kontekst.
Mam mając interfejs musimy oczywiście
stworzyć ten interfejs czyli będzie tworzyć.
I z tej funkcji będziemy zwracać uwagę na ten sezon żeby działało musi mieć nasz
serwis więc tu będzie Józek z serwisu z paczki Józek Józek kropka i wzór
i musimy coś zwrócić więc musimy stworzyć nasz Józek z małej litery czyli to będzie
nasza struktura i wracamy tutaj nasz Józek serwer żeby
nasz system działał musimy też przekazać czy to będzie Józek serwis.
I tworzymy go przekazując to nasz serwis.
No dobrze nie możemy tego zrobić dlatego
że nie umiemy wszystkich tych funkcji więc zróbmy to teraz dajmy Fang.
I to będzie jazda
serwer po spacji dodajemy do każdej metody dokładnie to samo.
I mamy wszystkie zapytania już zaimplementowane jeszcze zaimplementowane
nie są ale za chwilę będą więc najpierw musimy zaimplementowane
stworzenie użytkownika żeby stworzyć to to odwołujemy się do
naszego serwisu i tutaj mamy tworzenie użytkownikom.
Metoda wymaga naszego języka już
stworzonego więc najpierw musimy go respektować czyli
respektować naszego Jacksona czyli naszego języka i to będzie kreator user request.
Tworzymy to sobie a następnie pracujemy jak to zrobić piszemy chcę by Jackson.
I tu przekazujemy naszego użytkownika i James spróbuje sprecyzować
nasze zapytanie Great Quest to za pomocą funkcji Bing Jackson.
Jeśli się nie uda zwróci błąd
i wystąpi ten błąd co zwracamy za pomocą Greena czyli tu będzie zwracamy Jacksona.
I tutaj zwrócimy http: Bad Request dlatego
że jeśli ktoś źle korzysta z naszego API wysyła złe rzeczy no to zwracamy mu bardzo
złe zapytania i zwracamy mu nic czyli i wychodzimy z tego zapytania.
I to jest bardzo ważne jeśli my go nie damy to zapytanie pójdzie dalej czyli
jeśli mimo wszystko zwrócimy to to zapytanie ten co tutaj
się wywoła więc ten nie jest tutaj bardzo ważny i pamiętaj o nim.
Więc jeśli mamy już ten klip Quest to w takim razie stwórzmy.
I tu będzie spadki usterek metoda user czy metoda.
Ale tutaj zauważ że stworzyliśmy zmienną user ale chcemy też
użyć paczki Józefa więc mamy dwa sposoby na to jak sobie z
tym poradzić albo zostawiamy nazwę Józek albo zmieniamy nazwę tej paczki.
Jaka będzie się nazywała w tym kontekście czyli na czym możemy sobie zmienić nazwę
na user serwis i wtedy to ta paczka będzie występowała z tą nazwą.
Zrób to i zobaczmy jak to działa więc
teraz będziemy używali user serwis kropka i tutaj będziemy mieli dostęp do
wszystkich metod i wszystkich pól i wszystkich struktur więc mamy.
Stworzyliśmy naszego użytkownika wypełnić go danymi czy tam e-mail napiszemy nam.
I oczywiście
pasmo będzie pasmo ale wypełnionego naszego użytkownika to
przekażemy go do funkcji KRRiT ona zwraca błąd może nam zwrócić błąd jeśli
faktycznie nie uda się tego użytkownika stworzyć.
I tutaj jeśli błąd jest różny od nowa
to coś zrobimy a jeśli nie to nasze zapytanie.
To jest sukces więc jest status ok i
zwracamy pusty pusty Gibson ale pamiętaj że tam daliśmy coś response.
Jako że nie mamy nic do wypełnienia tej odpowiedzi to przesuwamy pusty obiekt.
Ale jeśli błąd wystąpi to teraz w tej funkcji zrobiliśmy coś takiego.
Tylko Visual Studio nie chce przejść do
tej funkcji i nie działa więc musimy ręcznie przejść do naszego serwisu.
Przy tworzeniu tej funkcji występuje tu kilka błędów czyli albo że
e-mail nam las jest pusty albo że użytkownik już istnieje albo że wystąpił
błąd ale nie zwracamy tutaj żadnych błędów bezpośrednio z bazy danych
i tak dalej więc możemy bez problemu wykluczyć te błędy.
Natomiast to jest kilka to są
błędy które możemy podzielić na kilka rodzajów albo jest integralna
albo jest Deep albo błąd użytkownika więc jeśli wystąpią te błędy to musimy
zwrócić że to jest złe zapytanie a jeśli wystąpią te błędy to
to powinniśmy zwrócić że to jest 500 kW bo to jest nasz błąd
więc przejdźmy do naszego adaptacja do serwera próbka go i jeśli błąd to jest
user w serwis dB lub czyli te dwa typy dajemy inspiracja i serwis.
Jeśli to jest błąd internetowy to wtedy zgłaszamy część
HTTP kropka status i Terminal Error i nie zwracamy nic a jeśli
nie znajdujemy tego błędu tutaj występuje jakiś problem
error Antyweb bulwaru interfejs co nam zwraca ten błąd
ten błąd to jest błąd więc dlaczego nie możemy tego porównać.
A no tak błędów nie możemy w ten sposób.
Czy możemy.
Możemy dobrze byc tak błędy możemy
porównywać na dwa sposoby albo przez znak równości albo używamy z biblioteki Rewers
i to są dwa sposoby na porównywanie błędów.
Więc tak jeśli błąd jest to błąd dB lub internetowy no to zwracamy że to jest
internetowy błąd a jeśli nie to wcale że to jest Bad Request.
I też zwracamy że to jest błąd.
No dobrze to mamy już stworzone stworzenie
użytkownika zaimplementowane tutaj Google dlatego że nie możemy użyć paczki i user
tylko musimy użyć jego serwis dlatego że zmieniliśmy jej nazwę w tym miejscu a
teraz nie jest wykorzystywana więc musimy ją usunąć.
To dokładnie to samo i tutaj zgłasza że potrzebujemy atak.
Tu musimy zrobić z naszego serwera wskaźnik dlatego że tutaj używamy
wskaźników jako implementacja tego interfejsu.
No dobrze to mamy teraz tworzenie użytkownika zrobione
żeby to przetestować musimy stworzyć end point czyli wchodzimy do pliku.
Nie potrzebujemy sprawdzania tego tokena nie potrzebujemy tych testowych rzeczy
będziemy potrzebować bazy danych będziemy potrzebowali serwis.
Stwórzmy sobie w takim razie user serwer.
I tu będzie to z paczki http: m.in. Józek krótka.
Ale żeby go stworzyć to będzie to jak i on wymaga nasz serwis.
I tu mamy nasz sekret i ten człowiek ma dostęp do kilku
metod autora Get info i Look więc musimy stworzyć nasz
serwera HTTP żeby to zrobić za pomocą internetu wystarczy wpisać
folder i już mamy pomysł jak i my wymagamy żeby
stworzenie użytkownika to było zapytanie typu POST no bo jak wiemy jak mamy
reszta to mamy tam kilka metod i typów zapytań możemy mieć zapytania typu
GET POST Page Direct i jeszcze było 5 o którym obecnie zapomniałem.
Więc w tym przypadku będzie to post
dlatego że tworzymy coś nowego naszym relatywnie czyli jaki będzie paw to chcemy
żeby to było podpisem Józek jeśli wyślemy zapytanie
typu POST ukośnie guzik to chcemy użyć Józek serwer klient Józek
czyli to zapytanie zostanie wtedy w ten sposób handlowano.
No to dalej chcemy użyć serwera jeśli
chcemy pobrać z pana Józek to wtedy chcemy pobrać info.
A jeśli wyślemy zapytanie typu POST pod pan Józek autor autogaz albo np.
login to wtedy będzie Józek a serwer kropka.
Autora jeśli nie autor to będzie login Józek.
I co z autoryzacja.
Więc tak żeby pobrać informacje o
użytkowniku chcemy go najpierw autoryzowane najpierw wywołują
metodę autoryzacji a później wysyłamy metodę Getin
w tym przypadku jest wszystko ładnie ale jeśli mamy np.
pobieranie informacji o użytkowniku jako jedną metodę jako drugą mamy np.
wyświetlenie wszystkich jego wiadomości jako trzecią metodę mamy pobranie historii
wiadomości z innym użytkownikiem a jako czwartą metodę mamy jeszcze wysłanie
wiadomości to chcielibyśmy mieć jedno miejsce w którym auto pokazujemy jeśli
jest za autoryzowane to dopiero oddajemy mu dostęp do czegoś innego.
żeby to zrobić musimy zrobić tzw.
grupę Gdynia.
Robimy to w taki sposób czyli
tworzymy sobie zmienną grupę i naszego serwera udzielamy grupę
relacji w parze czyli wszystkie zapytania które mają user nośnik
mają być odwołane bo ma być wywołany ten Chandler czyli np.
wszystkie po nicku czyli ta grupa odwołuje się do wszystkich
zapytań które mają ukośnie i ona będzie wymagała żeby
ta funkcja została wywołana i czym jest ta funkcja ta funkcja jest tzw.
medal czyli coś co działa między naszym faktycznym zapytaniem
a zapytanie użytkownika czyli jak użytkownik chce się ze chce powołać
informację o użytkowniku to najpierw wywoła tę metodę z kontekstem
oczywiście jeśli ta funkcja przejdzie to dopiero zostanie wywołana np.
funkcja Get info i możemy to zrobić w taki sposób żeby mieć
autorytet możemy po przecinku tutaj wyświetlić i wpisać tak dużo funkcji jak
chcemy ale w naszym przypadku chcemy tylko autoryzacja użytkownika czyli mieć pewność
że ten użytkownik ma dostęp do do UK do USA.
Tylko że w tym przypadku mamy taki problem że ta grupa działa na
silniku Józek i też tutaj mamy też łukasz guzek tu mamy łukasz Guzek.
To powoduje pewien problem dlatego że nie możemy zarejestrować grupy tam gdzie jest
już jakieś zapytanie typu POST Get pod tym samym adresem więc np.
żeby stworzyć użytkownikach musimy zapytać users żeby pobrać użytkownika no to do tej
grupy dodamy żeby dodać co do grupy piszemy grób i to będzie Get.
I tu będzie Rada tych panów.
To oznacza że po tym będzie dopiero latem
czyli w tym przypadku chcemy żeby to było po prostu jako user
jeśli będzie wniosek to wtedy just get info
czyli od tego użytkownika zapytamy mniej więcej w ten sposób Józek i łukasz
albo Paweł i wtedy zostanie wywołana najpierw ta funkcja a później ta funkcja.
Natomiast żeby to było te mniejsze to jest taki w slangu że jeśli użyjemy
pustych nawozów kolorowych i damy w środku coś to po prostu dodajemy jakby dodatkowy
lato i golonka dba żeby to było tabu na torze więc przecież my to tutaj i
teraz jasno widzimy że jest grupa i w tej grupie użytkowników mamy coś nowego.
No dobrze dodajmy w takim razie to co jest niepotrzebne jeśli wyślemy
wózek to stworzymy użytkownika ażeby zalogować się to możemy np.
dać login.
I wtedy wykonamy metodę login i user.
Tak mając w ten sposób zadeklarowany
serwer możemy w jakikolwiek sposób to przetestować.
Ale jak łatwo i szybko testować zapytania
w Visual Studio kody jest takie plug in i nazywa się on Rest klient.
Jeśli sobie to piszemy w wyszukiwarce
w pierwszym pole wygląda to w ten sposób ma bardzo dużo
gwiazdek i został bardzo dużo ranny został pobrany po zainstalowaniu go
żeby go użyć wystarczy stworzyć nowy plik który nazwiemy np.
request.
I tutaj ważne jest rozszerzenie kropka http.
Po stworzeniu takiego pliku.
Jeśli chcemy zrobić zapytanie to po prostu piszemy że to jest zapytanie typu Get.
Tu musimy wpisać adres czyli to będzie
Local host 80 80 i chcemy stworzyć wózek i chcemy to
stworzyć użytkownika więc wysyłamy zapytanie typu POST
I to zapytanie nie będzie wysyłał żadnego Jacksona w sobie więc żeby go wysłać to
wystarczy po prostu wpisać e-mail to chcemy Janek czyli My Name.
To oczywiście Janek i last name
I to będzie jeszcze gorzej dłużej i musimy jeszcze ustawić jego hasło.
Janek nie ma zbyt skomplikowane haseł więc koperty.
I tu jest to zapytanie zostanie wysłane jeśli nie teraz wyślemy to Connection
dlatego że nawet z serwera nie mamy jeszcze wystartować
żeby wystartować to wystarczy napisać tekst kropka Roman
i Jane domyślnie wystartuje na pokrycie 80 80 i na takim chcemy
wystartować jeśli wystąpi błąd to chcemy go oczywiście obsłużyć.
Czyli jeśli błąd jest różnorodna to wtedy Lock fotel i zwracamy że nie
udało się wystartować z serwera uruchomimy.
Zobaczmy czy to w ogóle działa
i po uruchomieniu serwerów konsol wypisał pisał że pod.
Zapytaniem post mamy Józek i to nam kieruje do paczki adapter http: Józek
klient Józek więc wejdziemy do naszego Request HTTP i wyślemy np.
coś co nie będzie miało Dicksona i zobaczymy tutaj że straciliśmy i gwiazd.
A jeśli piszemy tutaj Edisona i uruchomimy to zapytanie to dostaniemy.
OK ale w HTTP jest jeszcze zwrotka jak 201 kreator zmienimy w naszym adapter.
Zamkniemy to najpierw
przejdźmy do pliku serwer of Trinity House i tutaj wracamy status zwróćmy status.
I taka spółka mamy i powinniśmy zobaczyć
że to będzie błąd 201 widzieliśmy użytkownik został założony.
Sprawdźmy to w bazie danych więc mamy SQL
Light Explorer uruchom naszych użytkownikowi i zobaczymy że mamy
identyfikator z 7 maja faktycznie jest to Janek.
Faktycznie ma hasło jest Janek Nowak ale nigdy nie został delegowany więc
musimy teraz przejść do naszego pliku z którego kropka go widzimy.
Stworzenie mamy ale nie mamy też logowania ani autoryzacji ani gdy info.
Więc zróbmy najpierw logowanie żeby zalogować użytkownika musimy pobrać
najpierw jego strukturę którą robiliśmy więc mamy login Józek
i tam był login user request to login request to chcemy żeby
to podał użytkownik więc może wystąpić oczywiście błąd więc jest Prince Jackson.
I tutaj podajemy wskaźnik urodzin Józefa.
Jeśli błąd wystąpi.
To zwracamy oczywiście Jacksona i to będzie HTTP status Bad Request.
I nic.
I wychodzimy z tej funkcji bo
już dalej nie ma nic do roboty jeśli użytkownik nie podaje poprawnego loginu i
hasła więc tak teraz mamy e-mail i hasło więc odwołujemy nasz serwis.
I tu mamy logowanie podajemy e-mail e-mail login user Passport tutaj dostajemy
Access Token lub błąd i jeśli błąd wystąpi to chcemy ten błąd zwrócić.
Jak to zwrócić w taki szybki sposób możemy zobaczyć oczywiście status
autora list czyli czy jest to jedynka i możemy zrobić coś takiego.
K.H. I tutaj to jest struktura.
Zobacz proszę że to jest struktura która jest mapą.
Przepraszam to nie jest mapa tylko String podajesz klucz jako
interfejs podajesz cokolwiek i to jest przerabiane na Jacksona.
Czyli możemy tak szybko zwrócić np.
message.
To może być cokolwiek.
Ale my chcemy żeby to było jasne i
zrozumiałe nawet po kilku miesiącach wrócimy do tego.
Więc mamy login Quest i mamy login i sposób.
Więc jeśli mamy jakiś błąd do zwrócenia to możemy
stworzyć sobie model to będzie struktura i tu będzie Message string.
To będzie struktura błędu którą będziemy zwracać.
To będzie message.
I tu chcemy zwrócić konkretny
model Message i nasza wiadomość to będzie nasz błąd.
Co będzie z ringiem jeśli na ciebie wywołany Metodego z sami to jest
koncertowa to do strajku i wracamy to jako błąd.
Jeszcze muszę zobaczyć czy przerabialiśmy to na Jacksona.
Przerabialiśmy więc powinno być OK.
No dobrze mając Access Token możemy go
zwrócić więc stworzymy jakiś pomysł niech to będzie login response.
I tutaj przekazujemy Access Token Access
Token i mamy to jako HTTP status ok i nasz sposób mamy już logowanie
autoryzację teraz trzeba zrobić autoryzację zostawimy sobie na sam koniec
dlatego że jest ona troszkę inna niż cała reszta.
Ale żeby zrobić pobieranie informacji o użytkowniku to i tak musimy zrobić
autoryzację więc chyba jednak musimy zrobić ją trochę wcześniej
tak więc żeby zrobić autoryzację to przypominam ci że autoryzacja będzie
wykonywana zawsze przed jakimś zapytaniem które będzie wymagało od nas
żeby użytkownik był zautomatyzowany czyli musi mieć poprawny token.
Zacznijmy od czegoś prostego czyli po prostu pokazujemy użytkownika
do tego musimy mieć Access Token chcemy żeby użytkownik go podał jako
nagłówek zapytania żeby poszukać nagłówek musimy.
I tu podać klucz.
My zrobimy to pod kluczem autorytet.
Albo inaczej autoryzację.
I tu jest walor czyli tu powinien być nasz
akces token pobrany domyślnie Access Token.
Jeśli nie będzie podany będzie numer więc
jeśli będzie to po prostu zwracamy czy to jest.
Część stron http: status a autor listu
nie ma tokena czyli nie jest autoryzowane wyjdziemy z tej funkcji i teraz bardzo
ważne jest to że jeśli jest to funkcja typu medal czyli może być ktoś później to
musimy powiedzieć że hejtu jest już koniec.
Czyli aport czyli po prostu już dalej nie pójdziemy.
Czyli nie zostanie wywołana następna
funkcja ale jeśli jest to funkcja typu Miller to na końcu
tej funkcji przydałoby się wywołać jeszcze ta kropka Next.
Muszę powiedzieć że możemy przejść do
następnej funkcji dlatego że możemy wcześniej zakończyć lub wcześniej już
powiedzieć że mamy przejść do następnej funkcji dobrze mamy więc akcje Stoke
przekazujemy go naszej funkcji do serwisu i tutaj dostajemy Józek IT lub błąd.
Teraz jeśli wystąpi oczywiście błąd
to zwracamy że to jest HTTP status a autorytet.
Kod będąc wyżej i zwracamy nic
albo Ratujemy i kończymy działania funkcji i teraz musimy się zastanowić w jaki
sposób chcemy przekazać ten wózek do następnego zapytania byś chciał to
rozumiemy użytkownika to zróbmy to raz zapytamy tę bazę danych ale już przekażemy
do następnego zapytania już pobrane dane więc w moim przypadku możemy to zrobić np.
za pomocą adresów czy i nagłówków czyli
dodajemy do naszego nagłówki do zapytania
do słów dodajemy klucz User ID i wartość.
A VARIO to musi być przekręt Ratujmy naszych zakłady jako string.
No dobrze to oddaliśmy już nasz nagłówek
i idźmy dalej jeśli już wydaliśmy ten nagłówek tak mając już autorytet możemy
pobrać informacje użytkowników jak to zrobić w bardzo prosty sposób.
Mamy tutaj nagłówek więc mamy tutaj możemy go pobrać z USA więc jest pewien.
I to będzie pod kluczem do zagłady jeśli USA ID jest po prostu pusty.
To. C.
Jackson HTTP status baterii Quest i nie zwracamy nic a jeśli jest poprawny to
to nie jest String więc to możemy sobie powiedzieć że user string.
Teraz musimy ratować ten sparing na int czyli USA.
I tu będzie urząd User ID string.
Nie możemy kontrolować typu string pointa dlatego że konwersja między
styczniem a wartością musi być przeprowadzona za pomocą paczki z
telefonów dlatego że nie każdy z tych dni da się przekonać do Into.
Ale to chyba byłoby i to A.
Ten sposób i to jest konwersja Zygmunta do
Syrii a to jest String czyli jest to i to jest string.
Może tu wystąpić błąd więc musimy go
obsłużyć i jeśli jest niepoprawny Józek to to jest bezpłatne zapytanie więc
zwracamy request a jeśli jest poprawne to mamy tu już jako Internet
więc user Services i tu konkret Józek info Józek ID mamy juz info i lub błąd
więc jeśli on jest jakiś to zwróćmy że to jest internetowy błąd
dlatego że jeśli już mamy to autoryzowane to ten użytkownik na pewno
istnieje więc to będzie internetowy błąd więc mamy informacje użytkowników więc
informacje o użytkowniku musimy mamy zadeklarowanych w strukturę pliku
Models która się nazywa Get Józek Response więc to musimy zwrócić
będzie więc Get Response i tu będzie oczywiście nam to będzie user info.
Kropka.
Im to będzie las i info Las im.
Kropka nad i tu będzie e-mail to też będzie info.
Dobrze więc teraz już mamy ten wyjazd trzeba go po prostu zwrócić.
Status ok czyli wszystko jest OK i wracamy
z tego pytania więc tak sobie prezentowaliśmy już
pobieranie informacji logowania autoryzację testujemy czy to działa.
W takim razie żeby pobrać żeby się zalogować będzie łukasz login
żeby pobrać użytkownika będzie odnośnik więc tak to jest stworzenie konta żeby
zrobić nowe zapytanie wystarczy oddzielić go trzema atakami.
I tutaj kopiuje i chcemy zrobić zapytanie typu POST
pod login i chcemy tylko i wyłącznie e-mail hasło to
uruchomimy na Szkota żeby zobaczyć czy działa.
Uruchamia się
więc wróćmy do Request kropka HTTP i uruchomimy nasze zapytanie po
logowanie i to zapytanie dostaliśmy 200 OK.
Piszemy złe hasło zobaczmy czy będzie to błąd.
Tak ustaliliśmy że to list e-mail od
Passport syn Walid więc poprawny i pobierz my nasz token.
Dostaliśmy nasz token z kopią go i stwórzmy następne zapytanie.
Pobranie informacji użytkowników.
Lokal host Józek to będzie zapytanie typu Karp i jako tak podajemy autorkę Jane.
I spróbujmy wysłać te zapytania i
dostajemy baty i gwiazdki dostajemy w odpowiedzi
i nie wiemy dlaczego mimo tego że jest poprawna zobaczmy do naszego swego
krótkiego wróćmy do naszej autoryzacji i zobaczmy gdzie i co się dzieje.
Czyli tak mamy Patrick Quest czyli to na
pewno nie wchodzi tutaj bo to jest an autora list.
Tu jest on autor list czyli
przez autoryzację przechodzimy co się dzieje dalej Józek info.
I tu mamy pytanie czy chodzi tutaj postawmy sobie break point.
Tutaj jest kolejny głos więc dodajemy punkt też jest ale error więc tutaj na
pewno nie wchodzi więc problem leży tutaj lub tutaj.
Wróćmy do naszego zapytania i uruchomimy je ponownie.
I jak widzimy kod wszedł nam tutaj czyli.
Józek idei jest niepoprawny zobaczmy czym
jest boks a co chyba nie jest do końca tym czego się
spodziewaliśmy więc problem leży gdzieś w tej funkcji.
Pytanie tylko gdzie.
Zobaczmy czy w tym miejscu jest poprawny
token więc Spójrzmy dalej to zapytanie i zróbmy jeszcze jedno
pobranie użytkownika czyli jak zobaczymy tutaj mamy dodanie tego HDR.
Czy już jest poprawne to jest 7
więc myślę że to jest poprawne ale tutaj mamy konwersję Intela na styczeń
i to jest bardzo częsty problem z którym ja się spotkałem jak się uczę go plagiat
że konwersja pointa na Stinga nie może wyglądać w ten sposób.
Musimy do tego użyć jak on i to a i tutaj podajemy dopiero just right.
I to jest poprawna konwersja z kompa na string.
Więc teraz wróćmy do pliku uruchomimy na jeszcze raz.
I.
Po uruchomieniu wróćmy do naszego wieku
http: i to zapytanie wywalą wszystkie break pointy które nie są potrzebne.
Jak widzimy dostaliśmy w USA teczkę
i mamy tutaj zwrot Jamesa nową z informacjami o użytkowniku.
Tak więc zrobiliśmy nasz serwis HTTP który zwraca nam informacje o użytkowniku.
Mamy zrobioną autoryzację oraz stworzenie
nowego użytkownika także logowanie w poprawny sposób.
I to by było na tyle w tej sekcji.
Zapraszamy do kolejnej w której wygeneruje automatyczną dokumentację do serwera HTTP.