Skip to content

API для связи между микросервисами

Notifications You must be signed in to change notification settings

maratkh/microserviceapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Клиент для работы с приватным API микросервисов Mercury POS

Данный пакет позволяет микросервисам взаимодействовать между собой, путем вызова методов приватного API.


Установка

Данный пакет следует устанавливать как зависимость с помощью пакетного менеджера Composer. Внимаение! Поскольку данный пакет является проприетарным и доступ к нему осуществляется через приватный репозиторий, желающий установить пакет, должен являться членом команды Mercury POS и иметь доступ к github репозиторию команды.

Более того, если работа с git производится через HTTPS протокол, а не через SSH, необходимо создать токен здесь, а затем выполнить:

composer config -g github-oauth.github.com <токен>

В файле проекта composer.json добавить

"require": {
   "bandacomanda/api": "dev-master"
},
"repositories": [
 {
     "type": "vcs",
      "url":  "[email protected]:bandacomanda/api.git"
 }],

Затем выполнить

composer update

Инициализация

Пример инициализации клиента:

$client = new \Mercury\Api\Client($nodeSecret);

Метод конструктор имеет два параметра, первый параметр является обязательным и в качестве аргумента принимает секретный ключ доступа к ноде микросервиса, а второй параметр является опциональным. В качестве аргумента следует передавать список URL для доступа к микросервисам:

$urls = [
 'verifier' => 'http://verifier.loc',
 'contract' => 'http://contract.loc'
];

API

Микросервис Verifier

метод параметры возвращаемое значение
verifier string $method, mixed $params array null

Вызов:

$client->verifier($method, $params);

Создание кода подтверждения. Метод create:

$params = [
  'destination' => '56977633283',
  'operation'   => 'signup_confirm',
  'transport'   => 'sms'
];
$client->verifier('create', $params);
Параметр Описание Обязательный
destination Адрес электронной почты или номер мобильного телефона (в зависимости от транспорта) Да
operation Идентификатор операции, которая требует подтверждения Да
transport sms или email Да

В случае успешного выполнения метода возвращаемым значением является массив:

[ status => 'ok', data => 'frefr-78fsdf-cdscsc-2227-dadad' ]

Значение ключа data понадобится при верификации кода.

Верификация кода подтверждения. Метод verify:

   $params = [
     'secret' => 'frefr-78fsdf-cdscsc-2227-dadad',
     'code'   => '5779'
   ];
   $client->verifier('verify', $params);
Параметр Описание Обязательный
secret Значение, которое было получено при вызове метода create Да
code Код, который был отправлен пользователю Да

В случае успешного выполнения метода возвращаемым значением является массив:

[ status => 'ok', data => true ]

Значение ключа data - true, если код подтвержден верно, иначе false.

Если при вызове методов микросервиса Verifier происходят ошибки, то возвращаемым значением является массив:

[ 'status' => error, 'error' => [ 'code' => 'Code of error', 'message' => 'Error description' ] ];

Микросервис Postman

метод параметры возвращаемое значение
postman string $method, mixed $params array null

Вызов:

$client->postman($method, $params);

Отправка сообщения. Метод send:

$params = [
  'destination' => '[email protected]',
  'transport'   => 'email',
  'content'     => [ 'name' => 'Jeremy', 'surname' => 'Podeswa' ],
  'template'    => 'birthday',
  'attachment'  => [ 'data' => 'base64encoded', 'name' => 'image.jpg', 'mime' => 'image/jpg' ]
];
$client->postman('send', $params);
Параметр Описание Обязательный
destination Адрес электронной почты или номер мобильного телефона (в зависимости от транспорта) Да
content string или array. Строка, либо ассоциативный массив, ключи которого будут доступны в шаблоне, как переменные. Если указана строка, то в шаблоне ее значение можно будет получить через переменную content. Если шаблон не используется следует указывать строку. Да
transport sms или email Да
template Идентификатор шаблона В случае транспорта email - обязательный.
attachment Вложение, data (base64 encoded вложение), name - название файла вложения, mime - MIME Type вложения Нет

В случае успешного выполнения метода возвращаемым значением является массив:

[ status => 'ok', data => 'frefr-78fsdf-cdscsc-2227-dadad' ]

Значение ключа data можно использовать для отслеживания статуса отправки сообщения.

Отслеживание статуса отправки сообщения. Метод status:

$params = [ 'id' => 'frefr-78fsdf-cdscsc-2227-dadad' ]; 
// Или можно просто указать id как строку
$params = 'frefr-78fsdf-cdscsc-2227-dadad';
$client->postman('status', $params);
Параметр Описание Обязательный
id Идентификатор сообщения Да

В случае успешного выполнения метода возвращаемым значением является массив:

[ status => 'ok', data => 1 ]

Значение ключа data содержит числовой статус отправки сообщения. Описание статусов см. в документации к микросервису.

Если при вызове методов микросервиса Postman происходят ошибки, то возвращаемым значением является массив:

[ 'status' => error, 'error' => [ 'code' => 'Code of error', 'message' => 'Error description' ] ];

Микросервис Contract

метод параметры возвращаемое значение
contract string $method, mixed $params array null

Вызов:

$client->contract($method, $params);

Создание контракта. Метод createContract:

$params = [ 'id' => 'frefr-78fsdf-cdscsc-2227-dadad' ];
// Или можно просто указать id как строку
$params = 'frefr-78fsdf-cdscsc-2227-dadad';
$client->contract('createContract', $params);  
Параметр Описание Обязательный
id Идентификатор заявки в микросервисе Request Да

В случае успешного выполнения метода возвращаемым значением является массив:

[ 'status' => 'ok', 'data' => true ];

Если при вызове методов микросервиса Contract происходят ошибки, то возвращаемым значением является массив:

[ 'status' => error, 'error' => [ 'code' => 'Code of error', 'message' => 'Error description' ] ];

Микросервис Request

About

API для связи между микросервисами

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages