Документация сервиса отправки корреспонденции (PostService) — различия между версиями

Материал из doc.abonent.plus
Перейти к: навигация, поиск
 
(не показаны 2 промежуточные версии этого же участника)
Строка 39: Строка 39:
 
Настройки подключения к БД задаются в «appsettings.json»
 
Настройки подключения к БД задаются в «appsettings.json»
  
[[File:PostService_001.png|926×155px]]
+
[[File:PostService_001.png|806×35px]]
  
 
==== Генерация контекстных классов ====
 
==== Генерация контекстных классов ====
Строка 109: Строка 109:
 
Пример взаимодействия сервиса Претензия Абонент+ с ИС ЭПС Почта России:
 
Пример взаимодействия сервиса Претензия Абонент+ с ИС ЭПС Почта России:
  
[[File:PostService 005.png|1391×614px]]
+
[[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»

806×35px

Генерация контекстных классов

Обновление с помощью батника, отредактировать по необходимости UpdateDbClasses.bat

PostService 002.png

Реляционная модель

PostService 003.jpg

Перечисляемые типы

Все перечисляемые типы, относящиеся к контексту базы данных находятся в 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

Пример взаимодействия сервиса Претензия Абонент+ с ИС ЭПС Почта России:

991×214px