Микросервис load-template
Микросервис load-template служит для управления шаблонами файлов экспорта (быстрая кастомизация содержимого выгрузки).
Доступ к сервису предоставляется по запросу.
Логика работы
В работе микросервиса используется сущность Template, которая содержит структуру шаблона, его формат (xml/csv) и название.
Аутентификация
Для работа с микросервисом аутентификация и авторизация не требуется.
Service context path
/api/load-template/
Настройки и параметры конфигурации микросервиса
Параметры конфигурации указываются в Vault.
Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания.
{
"env": {
"JAVA_XMS": "XXm",
"JAVA_XMX": "YYYm",
"SPRING_DATA_MONGODB_DATABASE": "название_бд",
"SPRING_DATA_MONGODB_PORT": "порт_бд",
"SPRING_DATA_MONGODB_USERNAME": "юзернейм_для_бд"
}
}
// пример взят с тестового стенда
{
"env": {
"OAUTH_ECOM_CLIENT_ID": "токен_приложения_ECOM_OAuth",
"OAUTH_ZITADEL_CLIENT_ID": "токен_приложения_Zitadel",
"OAUTH_ZITADEL_ISSUER_URI": "url_Zitadel"
"SPRING_DATA_MONGODB_HOST": "хост_бд",
"SPRING_DATA_MONGODB_PASSWORD": "пароль_для_бд"
}
}
Методы микросервиса
- Получение страницы со списком шаблонов (с возможностью пагинации, фильтрации и сортировки) - GET запрос, /v1/templates/page
id - query-параметр, необязательный: идентификатор
шаблона
name - query-параметр, необязательный: имя шаблона
page - query-параметр: номер страницы с шаблонами
size -
query-параметр: размер страницы с шаблонами
sort - query-параметр:
сортировка шаблонов на странице
{
"content": [
{
"id":
"443cbf41-ab1c-4360-a030-346327ab9fe2",
"name": "RegionTemplate",
"format": "csv",
"tableData": {
"sheets":
[
{
"name": "sheet 1",
"table": {
"name":
"Region",
"columns": [
{
"title": "ID
региона",
"propertyName": "id",
"order": 1,
"enable":
true,
"width":
3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Название региона",
"propertyName": "name",
"order": 3,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Регион по
умолчанию",
"propertyName": "defaultRegion",
"order": 4,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Id родительского региона",
"propertyName":
"headId",
"order":
2,
"enable":
true,
"width":
3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Уровень вложенности",
"propertyName": "level",
"order": 5,
"enable": true,
"width": 3000,
"defaultValue":
"string",
"dateTimeFormat": "string"
}
]
}
}
]
}
}
],
"pageable": {
"sort": {
"sorted": true,
"unsorted": false,
"empty": false
},
"pageNumber": 0,
"pageSize": 5,
"offset": 0,
"paged": true,
"unpaged": false
},
"last": true,
"totalPages": 1,
"totalElements":
1,
"first": true,
"numberOfElements": 1,
"sort":
{
"sorted": true,
"unsorted": false,
"empty": false
},
"size":
5,
"number": 0,
"empty": false
}
200 - операция выполнена успешно, получена страница
со списком шаблонов
- Получение списка шаблонов - POST запрос, /v1/templates/list
{
"name":
"RegionTemplate"
}
[
{
"id":
"443cbf41-ab1c-4360-a030-346327ab9fe2",
"name": "RegionTemplate",
"format": "csv",
"tableData": {
"sheets": [
{
"name":
"sheet 1",
"table": {
"name":
"Region",
"columns": [
{
"title": "ID
региона",
"propertyName": "id",
"order": 1,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title":
"Название региона",
"propertyName":
"name",
"order": 3,
"enable": true,
"width":
3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title":
"Регион по умолчанию",
"propertyName":
"defaultRegion",
"order": 4,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Id родительского региона",
"propertyName": "headId",
"order": 2,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title":
"Уровень вложенности",
"propertyName":
"level",
"order": 5,
"enable": true,
"width":
3000,
"defaultValue": "string",
"dateTimeFormat": "string"
}
]
}
}
]
}
}
]
200 - операция выполнена успешно, получен список шаблонов
- Получение шаблона по его id - GET запрос, /v1/templates/{templateId}
templateId - path-параметр, обязательный:
идентификатор шаблона
{
"id":
"443cbf41-ab1c-4360-a030-346327ab9fe2",
"name": "RegionTemplate",
"format":
"csv",
"tableData": {
"sheets": [
{
"name":
"sheet 1",
"table": {
"name": "Region",
"columns": [
{
"title": "ID региона",
"propertyName": "id",
"order": 1,
"enable": true,
"width":
3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Название региона",
"propertyName": "name",
"order": 3,
"enable":
true,
"width": 3000,
"defaultValue":
"string",
"dateTimeFormat": "string"
},
{
"title": "Регион по
умолчанию",
"propertyName": "defaultRegion",
"order":
4,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat":
"string"
},
{
"title": "Id родительского региона",
"propertyName": "headId",
"order": 2,
"enable":
true,
"width": 3000,
"defaultValue":
"string",
"dateTimeFormat": "string"
},
{
"title": "Уровень
вложенности",
"propertyName": "level",
"order": 5,
"enable": true,
"width":
3000,
"defaultValue": "string",
"dateTimeFormat": "string"
}
]
}
}
]
}
}
- 200 - операция выполнена успешно, получены данные о шаблоне
- 404 - ошибка, шаблон не найден
- Создание шаблона - POST запрос, /v1/templates
{
"name": "RegionTemplate123",
"format": "csv",
"tableData": {
"sheets": [
{
"name": "sheet 1",
"table": {
"name": "Region",
"columns": [
{
"title": "ID региона",
"propertyName": "id",
"order": 1,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Название региона",
"propertyName": "name",
"order": 3,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Регион по умолчанию",
"propertyName": "defaultRegion",
"order": 4,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Id родительского региона",
"propertyName": "headId",
"order": 2,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Уровень вложенности",
"propertyName": "level",
"order": 5,
"enable": false,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
}
]
}
}
]
}
}
{
"id": "0d10843c-fc59-4bf3-aa84-49967500d6f3",
"name": "RegionTemplate123",
"format": "csv",
"tableData": {
"sheets": [
{
"name": "sheet 1",
"table": {
"name": "Region",
"columns": [
{
"title": "ID региона",
"propertyName": "id",
"order": 1,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Название региона",
"propertyName": "name",
"order": 3,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Регион по умолчанию",
"propertyName": "defaultRegion",
"order": 4,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Id родительского региона",
"propertyName": "headId",
"order": 2,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Уровень вложенности",
"propertyName": "level",
"order": 5,
"enable": false,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
}
]
}
}
]
}
}
- 200 - операция выполнена успешно, создан новый шаблон
- 400 - ошибка, шаблон не создан
- Обновление шаблона - PATCH запрос, /v1/templates/{templateID}
templateID - path-параметр, обязательный: идентификатор шаблона
{
"name": "RegionTemplateNewVersion",
"format": "csv",
"tableData": {
"sheets": [
{
"name": "sheet 1",
"table": {
"name": "Region",
"columns": [
{
"title": "ID региона",
"propertyName": "id",
"order": 1,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Название региона",
"propertyName": "name",
"order": 3,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Регион по умолчанию",
"propertyName": "defaultRegion",
"order": 4,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Id родительского региона",
"propertyName": "headId",
"order": 2,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Уровень вложенности",
"propertyName": "level",
"order": 5,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
}
]
}
}
]
}
}
{
"id": "0d10843c-fc59-4bf3-aa84-49967500d6f3",
"name": "RegionTemplateNewVersion",
"format": "csv",
"tableData": {
"sheets": [
{
"name": "sheet 1",
"table": {
"name": "Region",
"columns": [
{
"title": "ID региона",
"propertyName": "id",
"order": 1,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Название региона",
"propertyName": "name",
"order": 3,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Регион по умолчанию",
"propertyName": "defaultRegion",
"order": 4,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Id родительского региона",
"propertyName": "headId",
"order": 2,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
},
{
"title": "Уровень вложенности",
"propertyName": "level",
"order": 5,
"enable": true,
"width": 3000,
"defaultValue": "string",
"dateTimeFormat": "string"
}
]
}
}
]
}
}
- 200 - операция выполнена успешно, данные шаблона обновлены
- 400 - ошибка, не далось обновить данные шаблона
- Удаление шаблона - DELETE запрос, /v1/templates/{templateId}
templateId - path-параметр, обязательный: идентификатор шаблона
В ответе приходит только код операции, например, 204.
- 204 - операция выполнена успешно, шаблон удален
- 404 - ошибка, шаблон не найден