XDAC DML

-----------------------------------------------------------------------------------------------------------------------------------------------
SELECT
-----------------------------------------------------------------------------------------------------------------------------------------------

GET запрос с указанием имени таблицы и набором операторов
Например:
http://localhost:8888/xdac/[datasource_name]/dml/test_data
http://localhost:8888/xdac/[datasource_name]/dml/test_data?age=gt.35
http://localhost:8888/xdac/[datasource_name]/dml/test_data?age=in.(35,39)
http://localhost:8888/xdac/[datasource_name]/dml/t_clients?select=age
http://localhost:8888/xdac/[datasource_name]/dml/episodes?title=eq.The%20Uptick

-----------------------------------------------------------------------------------------------------------------------------------------------
INSERT
-----------------------------------------------------------------------------------------------------------------------------------------------

POST запрос с телом набором данных в JSON
Например:

curl "http://localhost:8888/xdac/[datasource_name]/dml/t_clients" -X POST -H "Content-Type: application/json" \
  -d @- << EOF
  [
    {"age":777,"birthdate":"1986-02-27T00:00:00Z","description":"insert by xdac","first_name":"xdac","id":27700,"last_name":"cdax","salary":41622.90,"second_name":"ЕВГЕНЬЕВИЧ"}
  ]
EOF

curl "http://localhost:8888/xdac/[datasource_name]/dml/test_data" -X POST -H "Content-Type: application/json" \
-d @- << EOF
[
{ "name": "J Doe", "age": 62 },
{ "name": "Janus", "age": 10 }
]
EOF

-----------------------------------------------------------------------------------------------------------------------------------------------
DELETE
-----------------------------------------------------------------------------------------------------------------------------------------------

DELETE запрос с указанием имени таблицы и набором операторов
Например:
curl "http://localhost:8888/xdac/[datasource_name]/dml/t_clients?id=eq.2770" -X DELETE
curl "http://localhost:8888/xdac/[datasource_name]/dml/t_clients?birthdate=gt.1992-01-01" -X DELETE

-----------------------------------------------------------------------------------------------------------------------------------------------
UPDATE
-----------------------------------------------------------------------------------------------------------------------------------------------

PATCH или PUT запрос с указанием имени таблицы, набором обновляемых данных в JSON и
набором операторов
curl -X PATCH \
"localhost:8888/xdac/[datasource_name]/dml/test_data?id=eq.27" \
-H "Content-Type: application/json" \
-d '{
"name": "John",
"address": "Doe"
}'

-----------------------------------------------------------------------------------------------------------------------------------------------
ПОДДЕРЖИВАЕМЫЕ ОПЕРАТОРЫ
-----------------------------------------------------------------------------------------------------------------------------------------------

┌──────────────┬──────────────────┬─────────────────────────────────────────────────────────────────┬──────────────────────────────────────────┐
│ ОПЕРАТОР DML │ Аналог PostgreSQL│ Значение                                                        │ Пример                                   │
├──────────────┼──────────────────┼─────────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤
│ eq           │ =                │ равно                                                           │ id=eq.2770                               │
│ gt           │ >                │ больше                                                          │ date_of_birth=gt.1989-01-01              │
│ ge           │ >=               │ больше или равно                                                │ age=ge.35                                │
│ lt           │ <                │ меньше                                                          │ age=lt.35                                │
│ le           │ <=               │ меньше или равно                                                │ age=le.35                                │
│ neq          │ <> или !=        │ не равно                                                        │ age=neq.35                               │
│ like         │ LIKE             │ оператор LIKE (для избежания URL-кодирования в шаблоне нужно    │ name=like.Us*                            │
│              │                  │ использовать * как псевдоним символа %)                         │                                          │
│ ilike        │ ILIKE            │ оператор ILIKE (регистронезависимый аналог LIKE; * также        │ name=like.us*                            │
│              │                  │ заменяет %)                                                     │                                          │
│ in           │ IN               │ значение из списка, например: ?a=in.(1,2,3). Поддерживает       │ age=in.(33,36,37,38)                     │
│              │                  │ запятые в кавычках: ?a=in.("привет,мир","да,вы")                │                                          │
│ is           │ IS               │ проверка на соответствие состоянию: null, not_null, true,       │ is_active=is.true  salary=is.null        │
│              │                  │ false, unknown                                                  │                                          │
│ not          │ NOT              │ отрицание другого оператора                                     │ age=not.eq.40                            │
│ or           │ OR               │ логическое ИЛИ                                                  │ or=(age.lt.18,age.gt.21)                 │
│ and          │ AND              │ логическое И                                                    │ and=(balance.gt.500,balance.lt.1500)     │
└──────────────┴──────────────────┴─────────────────────────────────────────────────────────────────┴──────────────────────────────────────────┘