Сервис предоставляющий третьим сторонам REST API для доступа к нашим системам.
Для запуска процесса сборки достаточно выполнить просто:
make
Чтобы запустить полученную сборку в режиме разработки и получить стандартный Erlang shell, нужно всего лишь:
make start
Хозяйке на заметку. При этом используется стандартный Erlang релиз, собранный при помощи relx в режиме разработчика.
Дальнейшую документацию можно почерпнуть, пройдясь по ссылкам в соответствующем документе.
Идемпотентность запросов создания/изменения сущностей обеспечивается специальной подсистемой, которая оперирует несколькими понятиями:
- ExternalId - внешний идентификатор сущности.
- Features - значимая часть данных запроса, изменение которых может появлиять на результат выполнения запроса.
- Schema - рецепт как из полной структуры данных запроса получить Features.
В случае, когда в запросе фигурирует ExternalId, сервис будет обрабатывать запрос идемпотентно. Для структуры данных запроса существует Schema, по которой извлекается Features. Features ассоциируется с переданным ExternalId. При повторе запроса с таким же ExternalId код извлечет Features из новых данных и сравнит их с Features оригинального запроса, в случае совпадения сервис ответит идемпотентно, в противном случае сервис ответит ошибкой с кодом 409.
- Вернуть передачу в hellgate контрактора, сразу как только там появятся интерфейс и бизнес-логика управления договорами
- Ленивое создание мерчанта
- Error Mapping
- CORS (текущая версия не знает об операциях и авторизации, что в общем случае неприемлемо)
- Тотальное логирование
- При разбиению по месяцу в запросах статистики ответ приходит с разбиением по 30 дням, что не очевидно
- В сгенеренном
swagger
коде вhandle_request_json
следует учесть, что ответ вида{false, Req1, State}
невалиден и приводит к500
ошибке - Перевести
capi_mock_handler
наthrift
-чучела - Убрать
cowlib
в тестовые зависимости, когда сборщик сможет качать тестовые зависимости