Logika Rest API. Jak zwrócić w URL konkretny numer strony paginacji

0

Witam,

Bardzo proszę o wytłumaczenie bądź jakieś nakierowanie mojego rozumowania w kierunku poniższych pytań. Zawiłości, których nie mogę zrozumieć na moich początkach to głównie REST API.

1. Robiąc kurs na jednej z najpopularniejszych stron, kończąc dział REST API w springu zrozumiałem że aplikację restową tworzymy po to aby na wszelki w przyszłości dać jej możliwość jako np. aplikacja mobilna na smartfony. -> Czy po to właśnie służy REST API?

2. W jaki sposób aplikacje (szczególnie aplikacja mobilna) mają możliwość korzystania z logiki biznesowej danego REST API, gdy dajmy do niej dostęp tylko za pomocą MVC REST? Aplikacja mobilna włącza sobie jakoś przeglądarkę i zaczyna działać poprze wpisywanie w pasek URL np. ksiegarnia.pl/api/books/1 i oto takim sposobem apka mobilna ma zwrócony json którym jest książka o ID równym 1 !?

3. troszkę odbiega od kontekstu pytań, jednak nwm czy to nie jest związane z REST. Tworzę pierwszą stronkę, która korzysta z JPA + SPRIGNA + MVC + THYMELEAF, dodane mam już mnóstwo funkcji, jest tam ileś stron i podstron, jednak teraz dopiero natrafiam na problem, jak ja mogę zwrócić w URL dany numer paginacji strony, lub jakieś dane w URL?

Dzięki za każdą odpowiedź.

2
  1. Nie tylko. API (w jakiejkolwiek formie REST, GraphQL, Avro, SOA) wystawia się po to aby dać zewnętrznemu światu możliwość konsumowania usługi. Przykładowo może być usługa która konwertuje docx na pdf, z api może korzystać np. aplikacja desktopowa, mikrousługa, aplikacja mobilna czy nawet aplikacja konsolowa. Czyli API to sposób udostępniania funkcjonalności na zewnątrz, taka DLLka 2.0.

Do co mobilek to czasami "skraja się" API pod UI, więc może być tak że aplikacja mobilna będzie miała osobny endpoint np. api.mobile.mycompany.pl a aplikacja webowa api.mycompany.pl.

  1. Po pierwsze authentykacja i autoryzacja. Często za pomocą klucza który wysyła się razem z żądaniem jako header po HTTPS. Generalnie aplikacje korzystają z bibliotek pokroju HttpClient i wysyłają żądania programowo. Przykładowo może pójść żądanie POST /events/1/ticketBuyRequests z JSONem { ticketsNo: 3 }, w odpowiedzi przyjdzie 200 OK { statusUrl: "/buyRequests/234" } i potem aplikacja nasłuchuje na tym URLu. Polecam https://github.com/allegro/restapi-guideline

Generalnie RESTowe api implementuje CRUDA (czyli edycję danych). Do tego mogą być wystawione zasoby algorytmiczne np. /search?kw=abc.

  1. Nigdy nie pracowałem z THYMELEAF, robiłem tylko SPA, nie pomogę
0

Rest API ma się nijak do Thymeleaf, poguglaj jak się robi nawigację w tej technologii

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