Parametry w endpointach typu lista
Parametry w endpointach typu lista
W systemie udostępniono endpointy, za pomocą których można przeszukiwać całe zbiory danych.
Np: GET /contacts pozwala pobierać wiele klientów
Dostępne są różne operatory, które pomagają w sortowaniu, filtrowaniu czy ograniczaniu ilości pobieranych danych ze zbioru
Filtrowanie po kolumnach
W każdym endpoincie możliwe jest szukanie po każdej kolumnie, która jest zwracana w odpowiedzi. Funkcjonalność nie działa dla kolumn z encjo dodatkowych
/contacts?name_1=Symfonia
W przypadku kiedy chcemy wyszukać po frazie składającej się z dwóch słów np. „sąd rejonowy”, wtedy słowa oddzielamy znakiem plusa.
/contacts?name_1=sąd+rejonowy
Jeżeli z jedną kolumną chcemy zrobić kilka porównań, wtedy należy użyć typu tablicowego. Do nazwy zmiennej należy dodać kwadratowe nawiasy &pole1[]=fraza1&pole1[]=fraza2
/contacts?name_1[]=szpital&name_1[]=kliniczny
Aby móc szukać po niepełnych frazach i słowach, należy użyć jednej ze specjalizowanych funkcji poprzez doklejenie do jej nazwy rozszerzenia:
- -not – Negacja
Przykład: &pole1-not=fraza
Wynikowy SQL: pole1 != 'fraza'
- -like – Prosty like
Przykład: &pole1-like=fraza%
Wynikowy SQL: pole1 like 'fraza%'
- -notlike – Negacja do powyższego like
Przykład: &pole1-notlike=fraza%
Wynikowy SQL: pole1 not like 'fraza%'
- -ilike – Wyszukiwanie ciągu porównując go do początku każdego wyrazu (działa jak systemowe lookupy)
Przykład: &pole1-ilike=fraza
Wynikowy SQL: pole1 ~* E'(^| |-|\\'|")fraza'
- -notilike – negacja do powyższego
Przykład: &pole1-ilike=fraza
Wynikowy SQL: pole1 !~* E'(^| |-|\\'|")fraza'
uwaga
Powyższe funkcje działają tylko dla kolumn typu string.
Operacje daty
Możemy również dodać filtr, który zwróci nam rekordy z odpowiedniego okresu, do tego należy wykorzystać następujące funkcje:
- -start początek zakresu
- -end koniec zakresu
Powyższe funkcje można ze sobą łączyć:
- Użycie -start Przykład:
pole1-start=2020-11-01
Wynikowy SQL: pole1 >= '2020-11-01'
- Użycie -end Przykład:
pole1-end=2020-11-01
Wynikowy SQL: pole1 <= '2020-11-01'
- Użycie -start i -end Przykład:
pole1-start=2020-11-01&pole1-end=2020-11-30
Wynikowy SQL: pole1 BETWEEN '2020-11-01' AND '2020-11-30'
Operatory matematyczne
System udostępnia także zbiór funkcji, które możemy wykorzystać do porównania liczb. Wywołanie bez funkcji &pole1=1
jest jednoznaczne z zapisem SQL pole1 = 1
.
- -not – Negacja
Przykład: &pole1-not=1
Wynikowy SQL: pole1 != 1
- -gt – jednoznaczne z pole1 > 2
Przykład: &pole1-gt=2
SQL: pole1 > 2
- -gte – jednoznaczne z pole1 >= 2
Przykład: &pole1-gte=2
SQL: pole1 >= 2
- -lt – jednoznaczne z pole1 < 2
Przykład: &pole1-lt=2
SQL: pole1 < 2
- -lte – jednoznaczne z pole1 <= 2
Przykład: &pole1-lte=2
SQL: pole1 <= 2
_search
Wartość po której ma się odbyć przeszukiwanie recordów
/contacts?_search=Symfonia
zostaną zwróceni ci klienci którzy, w dowolnej kolumnie mają słowo 'Symfonia'
_fields
Nazwy pól rozdzielone przecinkiem, które mają zostać zwrócone w odpowiedzi.
Przykład: _fields=pole1,pole2,pole3
/contacts?_fields=contid,name_1,email_
_filter
Jeśli tego parametru nie podasz, to wszystkie warunki zostaną złożone znacznikiem AND. Aby to zmienić możesz użyć następujących wartości: () OR AND <nazwy pól, których używasz w query>
Przykład 1: &_filter=pole1-OR-pole2
Lista klientów zawierających w nazwie (name_1 lub name_2) słowo poznań
/contacts?_filter=name_1-or-name_2&name_1=poznań&name_2=poznań
Przykład 2: &_filter=(pole1-OR-pole2)AND-pole3
Lista klientów zawierających w nazwie (name_1 lub name_2) słowo poznań oraz utworzonych od stycznia 2020 roku
/contacts?_filter=(name_1-or-name_2)and-adddat&name_1=poznań&name_2=poznań&adddat-start=2020-01-01
_sort
Nazwy pól, po których ma odbyć się sortowanie rosnące. Jeśli chcemy sortowanie malejące do nazwy pola doklejamy prefix -
Przykład 1: &_sort=pole1
– sortowanie rosnące
/contacts?_sort=name_1
Przykład 2: &_sort=-pole1
– sortowanie malejące
/contacts?_sort=-name_1
_limit
Ile rekordów ma zostać zwróconych.
/contacts?_limit=100
_offset
Od którego rekordu mają zostać zwracane wyniki.
/contacts?_offset=100