Dlaczego potrzebujemy GET blocks, i jak one działają?
Kiedy tworzysz frontend, nieuchronnie będziesz musiał uruchomić różne BP na backendzie. Aby uruchomić BP, musisz wywołać jego punkt końcowy. Aby to zrobić, AppMaster tworzy blok Server Request dla każdego punktu końcowego. Bloki te mają takie same pola wejściowe i wyjściowe jak powiązany z nimi endpoint i służą jako sposób na jego uruchomienie.
BlokiGET , zgodnie z zasadami REST API, muszą pobierać jakieś dane. Najczęściej bloki GET pobierają dane z modelu w bazie danych (wszystkie, lub według określonych kryteriów).
Jak wszystkie bloki Server Request, każdy blok GET jest związany z własnym endpointem. Url punktu końcowego jest wyświetlany w nazwie bloków.
Pamiętaj, że AppMaster generuje podstawowe punkty końcowe automatycznie. Ale możesz również tworzyć swoje BP i endpointy dla nich, a w konsekwencji swoje bloki Server Request.
Pola wejściowe i wyjściowe bloków GET block
Input
- Endpoint ID - określa, do którego punktu końcowego blok powinien uzyskać dostęp. To pole jest ustawiane automatycznie;
- _offset - pozwala określić, z którego rekordu blok będzie otrzymywał informacje; format integer;
- _limit - liczba rekordów, które blok ładuje. Domyślnie jest to 25, maksymalnie w danym momencie jest to 500; format integer;
- _sort_order - dla tego pola odpowiednie są dwie wartości: asc - bezpośredni porządek sortowania oraz desc - porządek odwrotny; format string;
- _sort_by - określa, według którego pola modelu danych lista będzie sortowana; format string;
- Ids - lista idsów rekordów. Pozwala na uzyskanie rekordów według określonego id; format tablicowy integer;
- _search - wyszukiwanie danej wartości w modelu danych; format string;
- _search_exact - włącza/wyłącza wyszukiwanie po dokładnym dopasowaniu; format boolean;
- _ search_in - wyszukiwanie według określonych pól; format string tablicy.
Przyjrzyjmy się bliżej polom związanym z wyszukiwaniem.
_search - szuka dopasowań w całym modelu danych i znajdzie je niezależnie od pola, w którym znajduje się wartość.
Dla przykładu, ustawmy pole _search na John. Jeśli w modelu danych dla jednego rekordu wartość pola name to John, a dla drugiego wartość pola email to [email protected], to wyszukiwanie znajdzie oba te rekordy.
_search_exact - włączenie tego pola oznacza, że wyniki będą zawierały rekordy całkowicie pasujące do zapytania.
Zapytanie | _search_exact | Wynik |
John | False | John, Johny, [email protected] |
John | True | John |
_search_in - tutaj można ustawić pola, w których ma być prowadzone wyszukiwanie. Na przykład, jeśli chcemy wyszukiwać tylko po nazwach i nie brać pod uwagę przypadków, gdy nazwa jest częścią maila, możemy użyć _search_in i wyszukiwać tylko po polu nazwa.
Pola modelu danych wyszukiwania
Pola te są używane do wyszukiwania według modelu danych. Główną różnicą pomiędzy nimi a polami wyszukiwania jest to, że mogą przyjmować różne wartości, w przeciwieństwie do wyszukiwania, które akceptuje tylko format łańcuchowy.
Wyjście
- _success - wyniki wyszukiwania; format boolean;
- _httpcode - kod odpowiedzi na żądanie; format integer;
- _error - tekst błędu; format łańcuchowy;
- Data - otrzymane rekordy; format tablicowy model;
- Count - liczba otrzymanych wpisów; format integer.
Pole _with pole
Pojawia się w tych blokach, w których żądanie przechodzi do powiązanych modeli danych. Pozwala na uzyskanie danych z modelu danych, do którego kierowane jest żądanie, oraz z modeli danych z nim powiązanych.
Przyjrzyjmy się polu _with korzystając z przykładowej aplikacji przechowującej listę książek i ich kategorii.
Utwórz dwa modele danych: book oraz category. W modelu book dodajemy pole book_name pole, a w category dodajemy category_name pole.
Utwórzmy między nimi relację. Narysujmy je od kategorii do książki i ustawmy typ relacji na has_many ponieważ jedna kategoria może odnosić się do różnych książek.
W zakładce aplikacji internetowej ustaw ładowanie danych do tabel książka i kategoria oraz dodaj rekordy do tych tabel. Połączone dane nie są obecnie wyświetlane w tabelach. Aby to naprawić, należy dodać _with jest potrzebne.
Skonfiguruj to pole w zakładce Get block dla każdej tabeli.
Otwórzmy teraz naszą aplikację i upewnijmy się, że zapytanie działa i że w tabeli pojawiają się właściwe dane.