7. REST API

7.1. Получение данных

URL

protocol://name[:port]/api/csv/[table];

protocol - HTTP;

name - ip или FQDN HTTP-сервера, на котором установлен CSV-Uploader;

port - номер TCP-порта;

api/csv - постоянный путь;

table – наименование витрины и таблицы, данной витрины, из которой необходимо получать данные;

После указания таблицы может быть указан id – первичный ключ таблицы, по которому необходимо получить данные.

Метод

GET

Описание

Метод предназначен для получения данных из таблицы или какой-либо строки таблицы витрины.

Аутентификция

Не используется

Протокол

HTTP

Входные параметры

Идентификатор конкретного ресурса (числовой или строковый).

Выходные параметры

В случае успешного выполнения HTTP-код ответа равен 200 (OK);

Возвращается стандартный HTTP ответ с хедерами content-type,content-disposition(должен содержать имя CSV-файла), и content-length.

HTTP-статус

коды в ответе

200 - в случае успешного выполнения;

400 - в случае пользовательской ошибки (сервер не смог обработать запрос, отправленный клиентом из-за неверного синтаксиса/входных данных);

404 - в случае, если не найден ресурс из URL;

500 - внутренняя ошибка загрузчика.

Пример:

http://t5-csv-uploader-01.ru-central1.internal:8080/api/csv/demo_view.passenger/1

В представленном примере:

  • http – протокол передачи данных;

  • t5-csv-uploader-01.ru-central1.internal - имя сервера;

  • 8080 – порт подключения;

  • api/csv/demo_view.passenger - постоянная часть пути до таблицы passengers, в витрине demo_view;

  • 1 - первичный ключ пассажира из таблицы passengers, информацию по которому предполагается получить (в случае если не указан, вернутся все данные из таблицы passengers).

7.2. Добавление/изменение данных (1 файл)

URL

http/name[:port]/api/csv/[table];

protocol - HTTP;

name - ip или FQDN HTTP-сервера, на котором установлен CSV-Uploader;

port - номер TCP-порта;

api/csv - постоянный путь;

table – наименование витрины и таблицы, данной витрины, которую необходимо наполнить данными или внести изменения.

Метод

POST

Описание

Метод предназначен для заполнения или внесения изменений в данные существующей таблицы витрины.

Header

Content-Type: application/octet-stream

Аутентификация

Не используется

Протокол

HTTP

Входные параметры

mimeType: application/octet-stream;

файл в формате CSV, содержащий данные таблицы.

Выходные параметры

В случае успешного выполнения HTTP-код ответа равен 200 (OK).

HTTP-статус

Код ответа

200 - в случае успешного выполнения;

400 - в случае пользовательской ошибки (сервер не смог обработать запрос, отправленный клиентом из-за неверного синтаксиса/входных данных);

500 - внутренняя ошибка загрузчика.

Пример:

http://t5-csv-uploader-01.ru-central1.internal:8080/api/csv/demo_view.passenger

В представленном примере:

  • http – протокол передачи данных;

  • t5-csv-uploader-01.ru-central1.internal - имя сервера;

  • 8080 – порт подключения;

  • api/csv/demo_view.passenger - постоянная часть пути до таблицы passengers, в витрине demo_view в которую необходимо внести изменения.

Файл, содержащий данные, которые требуется добавить/изменить указывается в теле сообщения (тип: file) содержимое csv-файла - demo_view_passenger.csv.

7.3. Добавление/изменение данных (несколько файлов)

URL

protocol://name[:port]/multipart/csv;

protocol - HTTP;

name - ip или FQDN HTTP-сервера, на котором установлен CSV-Uploader;

port - номер TCP-порта;

multipart/csv – постоянный путь для использования нескольких файлов.

Метод

POST

Описание

Метод предназначен для заполнения или внесения изменений в данные нескольких, существующих таблиц витрины.

Header

Content-Type: multipart/form-data

Аутентификация

Не используется

Протокол

HTTP

Входные параметры

mimeType: multipart/form-data

Наименование - файл в формате CSV, содержащий данные таблицы.

Выходные параметры

В случае успешного выполнения HTTP-код ответа равен 200 (OK).

HTTP-статус

Код ответа

200 - в случае успешного выполнения;

400 - в случае пользовательской ошибки (сервер не смог обработать запрос, отправленный клиентом из-за неверного синтаксиса/входных данных);

500 - внутренняя ошибка загрузчика.

Пример:

http://t5-csv-uploader-01.ru-central1.internal:8080/api/multipart/csv

В представленном примере:

  • http – протокол передачи данных;

  • t5-csv-uploader-01.ru-central1.internal - имя сервера;

  • 8080 – порт подключения.

Файлы, содержащие данные, которые требуется добавить/изменить указывается в теле сообщения (тип: multipart) содержимое:

file1 - demo_view_passenger(1).csv

file2 - demo_view_passenger(2).csv

7.4. Удаление данных (1 файл)

URL

protocol://name[:port]/api/csv/[table];

protocol - HTTP;

name - ip или FQDN HTTP-сервера, на котором установлен CSV-Uploader;

port - номер TCP-порта;

api/csv - постоянный путь;

table – наименование витрины и таблицы, этой витрины данные которой необходимо удалить.

Метод

DELETE

Описание

Метод предназначен для удаления данных из существующей таблицы витрины.

Header

Content-Type: application/octet-stream

Аутентификция

Не используется

Протокол

HTTP

Входные параметры

mimeType: application/octet-stream;

Путь, по которому находится файл в формате CSV, содержащий данные подлежащие удалению.

Выходные параметры

В случае успешного выполнения HTTP-код ответа равен 200 (OK).

HTTP-статус

Код ответа

200 - в случае успешного выполнения;

400 - в случае пользовательской ошибки (сервер не смог обработать запрос, отправленный клиентом из-за неверного синтаксиса/входных данных);

500 - внутренняя ошибка загрузчика.

Пример:

http://t5-csv-uploader-01.ru-central1.internal:8080/api/csv/demo_view.passenger/demo.v

В представленном примере:

  • http – протокол передачи данных;

  • t5-csv-uploader-01.ru-central1.internal - имя сервера;

  • 8080 – порт подключения;

  • api/csv/demo_view.passenger - постоянная часть пути до таблицы passengers, в витрине demo_view.

Файл, содержащий данные, которые требуется удалить, указывается в теле сообщения (тип: file) содержимое csv-файла - demo_view_passenger.csv.

7.5. Удаление данных (несколько файлов)

URL

protocol://name[:port]/multipart/csv;

protocol - HTTP;

name - ip или FQDN HTTP-сервера, на котором установлен CSV-Uploader;

port - номер TCP-порта;

multipart/csv – постоянный путь для использования нескольких файлов.

Метод

DELETE

Описание

Метод предназначен для удаления данных нескольких, существующих таблиц витрины.

Header

Content-Type: multipart/form-data

Аутентификция

Не используется

Протокол

HTTP

Входные параметры

mimeType: multipart/form-data;

Наименование - файл в формате csv, содержащий данные таблицы.

Выходные параметры

В случае успешного выполнения HTTP-код ответа равен 200 (OK).

HTTP-статус

Код ответа

200 - в случае успешного выполнения;

400 - в случае пользовательской ошибки (сервер не смог обработать запрос, отправленный клиентом из-за неверного синтаксиса/входных данных);

500 - внутренняя ошибка загрузчика.

Пример:

http://t5-csv-uploader-01.ru-central1.internal:8080/api/multipart/csv

В представленном примере:

  • http – протокол передачи данных;

  • t5-csv-uploader-01.ru-central1.internal - имя сервера;

  • 8080 – порт подключения.

Файлы, содержащие данные, которые требуется добавить/изменить указывается в теле сообщения (тип: multipart) содержимое:

file1 - demo_view_passenger(1).csv

file2 - demo_view_passenger(2).csv

7.6. Использование Curl для загрузки данных

URL

protocol://name[:port]/ api/csv/;

protocol - HTTP;

name - ip или FQDN HTTP-сервера, на котором установлен CSV-Uploader;

port - номер TCP-порта;

api/csv/– постоянный путь для использования Curl для загрузки данных.

Метод

POST

Описание

Метод предназначен для загрузки данных нескольких, существующих таблиц витрины.

Header

Content-Type: text/plain

Аутентификация

Не используется

Протокол

HTTP

Входные параметры

Содержимое для загрузки

data-raw

Выходные параметры

В случае успешного выполнения HTTP-код ответа равен 200 (OK).

HTTP-статус

Код ответа

200 - в случае успешного выполнения;

400 - в случае пользовательской ошибки (сервер не смог обработать запрос, отправленный клиентом из-за неверного синтаксиса/входных данных);

500 - внутренняя ошибка загрузчика.

Пример:

curl --location --request POST
'http://localhost:8080/api/csv/test_para.passenger'

--header 'Content-Type: text/plain'

--data-raw 'code;id;firstname;middlename;lastname;birthday;passport

1;8255bcce-fa66-4915-b805-c06e003bc7fb;33;Васильевич;Кротов;03.12.1992;/test/test.zip

10;7888b9d9-1ae2-4b88-954b-677cd59a76bf;Станислав;Васильевич;Гуськов;15.03.1980;/test/image/Picture_2.jpg

6;41414e39-dd3d-4b29-a1bc-afb4095900c6;Григорий;Антонович;Давыдов;03.07.1991;/test/image/Picture_3.jpg

5;e990203d-be40-4923-8075-c621897bc305;Иван5;Иванов5;Иванович5;13.09.1995;/test/image/Picture24.jpg

8;229c9856-41d5-4a2c-a38c-fa3dd9d0f1a5;Иван6;Иванов6;Иванович6;23.01.1990;

7;85f66365-86da-4032-852d-b0d9ecf34ae9;Иван7;Иванов7;Иванович7;13.05.1998;/test/image/Picture_6.jpg

4;0fe26963-6cdf-4db6-b632-03825a408d35;Иван8;Иванов8;Иванович8;23.08.1994;/test/passengers.csv

3;c1060f8e-14e5-46f7-8414-fe1431a997e6;Иван9;Иванов9;Иванович9;03.02.1981;/test/trips.csv

9;d34bc498-f036-49eb-a465-19887d926fdd;Иван10;Иванов10;Иванович10;07.02.1988;/test/image/Picture_9.jpg

2;2bd4c379-8fa8-40a1-9eb1-1dde12bd6998;Иван11;Иванов11;Иванович11;03.10.1990;/test/image/Picture_10.jpg'

В представленном примере:

  • http – протокол передачи данных;

  • localhost - имя сервера;

  • 8080 – порт подключения;

  • api/csv/test_para.passenger - постоянная часть пути до таблицы passengers, в Витрине test_para.