Документация сервиса отправки корреспонденции (PostService) — различия между версиями
D.andreev (обсуждение | вклад) |
D.andreev (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 39: | Строка 39: | ||
Настройки подключения к БД задаются в «appsettings.json» | Настройки подключения к БД задаются в «appsettings.json» | ||
− | [[File:PostService_001.png| | + | [[File:PostService_001.png|806×35px]] |
==== Генерация контекстных классов ==== | ==== Генерация контекстных классов ==== | ||
Строка 109: | Строка 109: | ||
Пример взаимодействия сервиса Претензия Абонент+ с ИС ЭПС Почта России: | Пример взаимодействия сервиса Претензия Абонент+ с ИС ЭПС Почта России: | ||
− | [[File:PostService 005.png| | + | [[File:PostService 005.png|991×214px]] |
Текущая версия на 15:58, 30 сентября 2021
Сервис отправки корреспонденции (PostService)
Ключевые особенности
Отправка e-mail, sms, заказных писем и другие реализации;
Единая структура данных, набор статусов и принцип взаимодействия для всех реализаций;
Версионное API стокен-авторизацией, возможность подключения функции обратного вызова;
Ограниченное количество попыток отправки и получение статусов во внешних сервисах интеграции;
Распределенная обработка поступивших запросов по авторизованным клиентам сервиса;
Логирование входящих запросов и ответов с привязкой к Hashstamp (идентификатор запроса/ответа).
Репозиторий
https://gl.abonent.plus/services/postservice
Стек технологий
.NET 5.0 ASP.NET Core PostgreSql
Адрес доступа
Тестовый контур:
https://post-service.abonentplus.ru/ (http://192.168.51.12:51001/)
Релизный контур:
https://post-service.abonent.plus/ (http://192.168.77.3:4444/)
База данных
Подключение
Настройки подключения к БД задаются в «appsettings.json»
Генерация контекстных классов
Обновление с помощью батника, отредактировать по необходимости UpdateDbClasses.bat
Реляционная модель
Перечисляемые типы
Все перечисляемые типы, относящиеся к контексту базы данных находятся в Classes/Database/PostServiceContextEnum
Описание API
Авторизация
/api/GetToken Получить токен авторизации
по необходимости передавать дополнительные настройки externalSettings и идентификатор externalId
Сервис
Методы доступны только при использовании авторизационного токена (заголовок Authorization в значение Bearer ****, пример в TestPostService/ApiServiceTest/AuthTest):
/api/Service/SendPost Передать запрос на отправку
пример использования в TestPostService/ApiServiceTest/RussianPostSendTest
/api/Service/CheckPost Получить статус отправки
пример использования в TestPostService/ApiServiceTest/RussianPostCheckTest
/api/Service/GetPostResult Получить результат отправки
пример использования в TestPostService/ApiServiceTest/RussianPostGetResultTest
Общее
Методы проверки работоспособности:
/api/Common/ApiTest Тестовый метод проверки API
в случае успеха метод возвращает в теле ответа один символ "+"
/api/Common/AuthTest Тестовый метод проверки авторизации
в случае успеха метод возвращает в теле ответа один символ "+"
/api/Common/RussianPostChannelTest Тестовый метод проверки канала связи с Почтой РФ
в случае успеха метод возвращает в теле ответа один символ "+"
Быстрый старт
Добавить пользователя в таблицу БД api_user, получить токен с помощью API-метода getToken, реализовать или использовать методы сервиса отправки на примере отправки InnerEmail.
Для добавления своего типа отправки необходимо:
- добавить реализацию и тип отправки в Classes/Database/PostServiceContextEnum.cs
- добавить имеющуюся интеграционную документацию в Documents/%Название_отправки%/
- добавить вспомогательные классы в Exchange/%Название_отправки%/, минимальный набор показан в InnerEmail реализации.
- добавить хелпер отправки Helpers/%Название_отправки%/ подготовить методы SendRequest, NewProcessing, WaitProcessing, FailProcessing, DoneProcessing
- добавить фоновую обработку в Background/%Название_отправки%Service.cs
- добавить модульные тесты по возможности в TestPostService/Exchange/%Название_отправки%Test.cs слой 1 по Message и Sender.SendMessage, слой 2 по PostDocument и Helper.SendRequest
Пример взаимодействия сервиса Претензия Абонент+ с ИС ЭПС Почта России: