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.