Разработка первого приложения

Компонент Автонумерация Platform V Generators поддерживает режим мультитенантности, используя следующие микросервисы:
  • Counters;
  • Patterns.

Подключение сервиса с использованием микросервиса Counters

Шаг 1. Создание сущности resources
Создать сущность resources вызовом метода CreateResource под административным resource name.
Пример запроса, где:
  • ott-invoker — идентификатор потребителя сервиса
POST localhost:8080/autonum/v3/rn/admin/configurer/resources
Content-Type: application/json
ott-invoker: invoker
{
"resource_name": "myres"
}
Результат шага: сущность создана.
Ответ:
«message»: «resource was created" Шаг 2. Создание счетчика
Создать счетчик вызовом метода CreateCounter под пользовательским resource name.
Пример запроса, где:
  • name — наименование счетчика;
  • start — стартовое значение счетчика;
  • min — минимальное значение счетчика;
  • max — максимальное значение счетчика;
  • step — шаг счетчика;
  • cycle — цикличность при достижении максимального значения.
POST /autonum/v3/rn/user_resource_name/counters
{
"name": "Unique_Counter_Name_009",
"start": "1",
"min": "1",
"max": "99999",
"step": "1",
"cycle": true,
"format": ""
}
Результат шага: счетчик создан.
Ответ:
HTTP Status Code
201 Created
Тело ответа
{
"name": "Unique_Counter_Name_009",
"start": "1",
"min": "1",
"max": "99999",
"step": "1",
"cycle": true,
"format": "Счет-фактура №$_$ от $date%г."
}
Шаг 3. Получение следующего значения счетчика
Получить следующее значение вызовом метода NextValue под пользовательским resource name.
Пример запроса, где:
  • date — параметр, для которого создается новый идентификатор
POST/autonum/v3/rn/user_resource_name/counters/Unique_Counter_Name_009/next
{
 "date": "31.05.2021",
}
Результат шага: идентификатор получен.
Ответ:
HTTP Status Code
200 OK
Тело ответа
{
"value": "Счет-фактура №12341234123412341234 от 31.05.2021г."
}

Подключение сервиса с использованием микросервиса Patterns

Шаг 1. Создание сущности resources
Создать сущность вызовом метода createResource под административным resource name.
Пример запроса, где:
  • ott-invoker — идентификатор потребителя сервиса
POST /autonum/v3/rn/admin/configurer/resources
Content-Type: application/json
ott-invoker: invoker
{
"resource_name": "myres"
}
Результат шага: сущность создана.
Ответ:
«message»: «resource was created" Шаг 2. Создание шаблона
Добавить шаблон вызовом метода templates под административным resource name.
Пример запроса:
curl -v 
-H "Content-Type: application/json" 
-H "ott-invoker: tester" 
-d '{"template_code" : "test_template", "template_name": "Шаблон номера запроса", "range_format": "%date$td%date$tm%date$tYcounter", "bottom": 1, "top": 999999, "step": 2, "endless" : true}' 
/autonum/v3/rn/admin/configurer/templates 
Результат шага: шаблон создан.
Ответ:
«message»: «Template was created» Шаг 3. Создание паттерна
Создать паттерн вызовом метода {admin_rn}/configurer/patterns под административным resource name.
Пример запроса:
curl -v 
-H "Content-Type:application/json" 
-H "ott-invoker: tester" 
-d '{"template_code":"test_template", "pattern_code" :"test_pattern","pattern_name":"Шаблон номера запроса","number_format":"SI%date$ty%date$tM%date$tdX01%[num]$05X","pattern_desc":""}' 
/autonum/v3/rn/admin/configurer/patterns
Результат шага: паттерн создан.
Ответ:
«message»: «Pattern was created» Шаг 4. Получение следующего отформатированного значения
Обновить текущее значение счетчика в базе данных и получить отформатированную строку вызовом метода {resource_name}/patterns/{patternCode}/next под пользовательским resource name.
Пример запроса, где:
  • ExampleLongParameterName — параметр с типом данных Long, значением 1234456;
  • ExampleStringParameterName — параметр с типом данных String, значением somevalue;
  • ExampleDateParameterName — параметр с типом данных Date, с форматом yyyy-MM-dd'T'HH:mm:ss.SSSZ, значением 2001-07-04T12:08:56.235-0700
POST /autonum/v3/rn/user_resource_name/patterns/patternCode/next
{
"ExampleLongParameterName": { 
"type": "Long",
"value": 1234456
},
"ExampleStringParameterName": { 
"type": "String",
"value": "somevalue"
},
"ExampleDateParameterName": {
"type": "Date",
"format": "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"value": "2001-07-04T12:08:56.235-0700"
}
}
Результат шага: отформатированное значение получено.
Ответ:
HTTP Status Code
200 OK
Тело ответа:
{
"value": "1:1:3:2010-0000001"
}

Шаблон с данными для создания генератора

ПараметрЗначение
template_code
iISSBOLPFApplicationNumberTemplate
range_format
amSalesPointCode + "/" + счётчик
bottom
1
top
99999999
step
1
endless
true
Pattern_code
iISSBOLPFApplicationNumberPattern

Часто встречающиеся проблемы и пути их устранения

HTTP Status CodeОписание
400 Bad Request
Параметр в данном запросе запрещен
401 Unauthorized
В запросе отсутствует идентификатор вызывающего клиента, т.е. заголовки ott-invoker, ott-token или ott-hash
403 Forbidden
Клиент ott-invoker не может выполнить запрошенную операцию. Например, удаление Счетчика от имени другого клиента, не владельца
404 Not Found
Не найден экземпляр сущности или resource
409 Conflict
Экземпляр объекта с таким идентификатором уже существует

Демопримеры

В демопримерах реализованы стандартные сценарии, демонстрирующие работу отдельных сервисов Платформы ГосТех. Отправка тестовых запросов в демопримерах позволит вам ознакомиться с функциями того или иного сервиса. Доступные демопримеры и описания реализованной в них функциональности представлены ниже.
Автонумерация
Создание счётчиков (key) с заданными параметрами значений, шага и цикличности, генерация следующих значений, поиск и удаление счётчиков по названию
Предыдущий раздел
Быстрый старт
Следующий раздел
Контроллер Автонумерации
Была ли страница полезной?