Laravel- prośba o pomoc w zrozumieniu jego logiki API

1

Dzień dobry,

Tworzę mały projekcik w laravelu dziennika elektronicznego- tworzę api, wszystk super ale troche brak u mnie zrozumienia logiki działania api w laravel a raczej jego ogólnego zastosowania. Wiem że dużo jest o tym pisane ale nie mogę znaleźć odpowiedzi na nutrujące mnie pytania.

Przykład:

Mam bazę danych w której jest tabela Users i tabela UserNotes (relacja 1:m) w bazie użytkowników jest wielu a więc skąd API wie jakiego użytkownika dane pokazać a jakiego nie? czy dzieje się to na zasadzie logowania się do api poprzez token? czy mój frontend przesyła mi w JSON dane o jakiego chodzi usera? czy może jeżeli mam ścieżkę http:locahlhost127.0.0.1/api/userNotes/{id}/user{Users_idUser}? dziękuję z góry za pomoc. A może ktoś zna jakiś fajny poradnik który może mi pomoć rozwiać moje wątpliwości?

Dziękuję!

1

a więc skąd API wie jakiego użytkownika dane pokazać a jakiego nie

Aplikacja backendowa sama z siebie nic nie robi oraz nic nie wie - Ty, jako programista, musisz dopiero tę informację w jakiś sposób przekazać (np. poprzez parametr GET / POST, wewnątrz tokenu itd.).

czy mój frontend przesyła mi w JSON dane o jakiego chodzi usera?

Skąd możemy wiedzieć co Twój frontend Ci wysyła?

0

@Patryk27: Dziękuję bardzo za odpowiedź

Chodzi mi o to jak najlepiej to właśnie przekazać- czy po stronie frontendu wysłać informację HEJ, api daj mi noatki użytkownika o id 1 czy może w get dodać wymagany parametr {userId}?

Kolejne pytanie czy jeżeli na razie nie robię autoryzacji i autentyfikacji to jakiś błąd? czy mogę dodać to dopiero później? czy najlepiej zrobić to na samym początku?

1

czy po stronie frontendu wysłać informację HEJ, api daj mi noatki użytkownika o id 1 czy może w get dodać wymagany parametr {userId}?

Czym różni się wysłanie informacji hej od w get dodać wymagany parametr? :-)

Kolejne pytanie czy jeżeli na razie nie robię autoryzacji i autentyfikacji to jakiś błąd?

Nie określiłbym tego błędem bardziej niż stwarzaniem sobie problemów na przyszłość - IMO dużo wygodniej jest projektować aplikację z uwierzytelnianiem od samego początku, ponieważ później ciężko przewidzieć wszystkie te sytuacje gdy użytkownik "przypadkowo" widzi za dużo, bo np. jakiś left join w MagicModelFetcher.php jest zbyt łakomy na dane.

Btw, autoryzacji oraz uwierzytelniania.

0

Okej dziękuję chyba już rozumiem :) bardzo pomogłeś!

1

Najpierw tworzysz w tabeli users pole api_token podczas tworzenia użytkownika. To jest jego klucz API. Teraz kazdy kto chce sie o co zapytac twojego API musi wysłać ci ten token. Albo doklejasz go do zapytania GET,POST , ja stosuje go w nagłówkach HEADERS. potem w pliku routingu dla api wszystkie trasy zamykam w funkcji

Route::group(['middleware' => 'auth:api'], function() {
    // tu wstawiam controllery itd
    Route::match(['post', 'get'], 'search', 'VisitController@search')->name('visit.search');
});

i to wszytsko. Teraz kazdy klient który chce się do ciebie połączyć np wyszukac wizyty lekarskie to podaje w nagłówku czy w parametrze ten token. System najpierw go identyfikuje czy taki token sie zgadza (ma on 60 znakow wiec mala sznasa ze sie powtorzy) Jesli sie zgadza zapisuje do sesji uzytkownika i wtedy w kontrolerze masz juz dostpe do Auth()->user()->id stad wie system, który to uzytkownik i jesli masz zezwolenie na wywołanie danej metody to ci zwróci liste wizyt na przykład.

Taki token wysyłasz za każdym razem ponieważ sesja nie jest zapamiętywana jak w normalnym przeglądaniu i logowaniu sie do aplikacji.

1

@chomikowski: Dziękuję bardzo za odpowiedź! właśnie w taki sposób sobie poradziłem, że tak powiem im dalej idę w las tym lepiej mi idzie i więcej rozumiem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1