crud

0

Описание

Модуль для CRUD функций

Языки

  • Go100%
README.md

Формат запросов адресной строки для методов GET и PUT:

ЗнакЗначениеОписаниеПримерSQL
=string
date
boolean
int
float
Знак равно. Указывайте любое значение в соответствии с форматом поля в таблице бд. Одинарные кавычки - обязательные символы при указании строковых значений и даты
?name=Имя

?count=10
SELECT * FROM table1 WHERE name = 'Имя'
=[value1,value2,...]in - оператор SQL подобных языков
?name=[Вася,Петя]
SELECT * FROM table1 WHERE name in('Вася','Петя')
[!]=
[<>]=
string
date
boolean
int
float
Отрицание. != (не равно <>). Одинарные кавычки - обязательные символы при указании строковых значений и даты
?name[!]=Имя

?count[!]=10

?name[<>]=Имя

?count[<>]=10
<nobr>SELECT * FROM table1 WHERE name != 'Имя'</nobr><br/>SELECT * FROM table1 WHERE count != 10
[>]=
[<]=
[>-]=
[<-]=
string
date
boolean
int
float
Знаки равенства. Одинарные кавычки - обязательные символы при указании строковых значений и даты
?count[>]=10

?count[<]=10

?count[>-]=10

?count[<-]=10
SELECT * FROM table1 WHERE count > 10

SELECT * FROM table1 WHERE count < 10

SELECT * FROM table1 WHERE count >= 10

SELECT * FROM table1 WHERE count <= 10
[~]=posixposix (регулярные выражения - ~). Документация
?name[~]=Имя*
SELECT * FROM table1 WHERE name ~ 'Имя*'
[~*]=posixposix (регулярные выражения - ~). Документация. Не учитывать регистр
?name[~*]=Имя*
SELECT * FROM table1 WHERE name ~ 'Имя*'
[!~]=posixposix (регулярные выражения - ~). Документация
?name[!~]=Имя*
SELECT * FROM table1 WHERE name !~ 'Имя*'
[!~*]=posixposix (регулярные выражения - ~). Документация. Не учитывать регистр
?name[!~*]=Имя*
SELECT * FROM table1 WHERE name !~* 'Имя*'
[+]=regexsimilar to (регулярные выражения). Документация`?name[+]=^(им
[!+]=regexsimilar to (регулярные выражения). Документация`?name[!+]=^(им
[%]=%25string%25like - оператор SQL подобных языков. URL encoding - Wikipedia
?name[%]=Им%25
SELECT * FROM table1 WHERE name like'Им%'
[!%]=%25string%25like - оператор SQL подобных языков. URL encoding - Wikipedia
?name[!%]=Им%25
SELECT * FROM table1 WHERE name not like'Им%'
[:]=[date:date]between - оператор SQL подобных языков
?created[:]=[2022-05-01T17:00:00.000:2022-05-27T17:00:00.000]
SELECT * FROM table1 WHERE created BETWEEN '2022-05-01T17:00:00.000' AND '2022-05-27T17:00:00.000'
=nullnull - если вам необходимо проверить значение на null. Запрос в бд будет выглядеть вот так: is null
?name=null
SELECT * FROM table1 WHERE name is null
[!]=
[<>]=
nullnull - если вам необходимо проверить значение на null. Запрос в бд будет выглядеть вот так: is not null
?name[!]=null
SELECT * FROM table1 WHERE name is not null
*Имя поля, поиск по всем полям таблицы. Примечание: если указаны поля в массиве fields, то поиск происходит только по ним.
?*[%]=49%25
SELECT * FROM table1 WHERE col1='49%' or col2='49%' or ...
[->]=
[->>]=
key[znak]=valueПоиск значений по полям в структуре json(b). Документация
?result[->>]=type[%]=2%
SELECT * FROM table1 WHERE result ->> 'type' like'2%'
[&&]=
[array]=
key[znak]=[value,...]Поиск значений по полям с типом массив - text[]. Документация
?result[&&]=[result1,result2]
SELECT * FROM table1 WHERE result && array['result1','result2']
[!&&]=
[!array]=
key[znak]=[value,...]Поиск отрицанию значений по полям с типом массив - text[]. Документация
?result[!&&]=[result1,result2]
SELECT * FROM table1 WHERE not result && array['result1','result2']
Примечание: Для того чтобы увидеть поля таблицы и их описание, необходимо указать в запросе GET заголовок(header) - Table-Info:full, либо через запятую укажите имена полей по отдельности - Table-Info:column_name,...

Поиск по всем полям - *. Пример:
url?*[%]=49%

Фильтр для запросов GET

Если вам потребуется указать фильтр запроса, например

ORDER BY
,
LIMIT
и прочее, то вам нужно указать необходимые поля в теле запроса в формате json.

ПолеТипПримерОписание
fieldsarray string["fields1","fields2"]Указываются  имена полей таблицы бд
ordersarray string["fields1","fields2 desc"]Указываются  имена полей таблицы бд, а также оператор сортировки (ASC, DESC)
limitinteger10Число возвращаемых строк. Полезно для пагинации
offsetinteger5Число с которой следует начинать отсчет строк в запросе. Полезно для пагинации

Пример в формате json:

Примечание. Модули
java script
для работы с
http
запрещают отправлять, при методе
GET
, тело запроса, чтобы это обойти укажите запрос в параметрах адресной строки в виде:
?~={"fields":["id","hostname","description"],"orders": ["id"],"offset": 0,"limit": 30}