Обратни повиквания
Получавайте подписани известия от сървър към сървър и завършени асинхронни резултати.
Обратни повиквания
Конфигурирайте URL адрес за обратно извикване в Профил → Обратни повиквания и асинхронни резултати. Model Gate изпраща HTTPS POST заявки за активирани известия за акаунти и за завършени заявки за асинхронни изводи.
Callback URL
Използвайте публично достъпна HTTPS крайна точка. Крайната точка трябва да прочете необработеното тяло на заявката, да провери подписа, да обработи събитието идемпотентно и да върне HTTP 200 веднага щом събитието бъде прието.
събития
Обратните повиквания могат да включват:
- завършени резултати от асинхронен извод;
- известия за ниско салдо по сметката, когато е активирано;
- Известия за ограничение на разходите на API-ключ, когато е активирано;
- уведомления за ограничение на разходите за ключови групи, когато е активирано.
Доставката на асинхронен резултат е активирана винаги, когато е конфигуриран URL адрес за обратно извикване. Квадратчетата за отметка за уведомяване в Профил контролират само съответните сигнали за баланс и лимит.
Формат на заявката
POST /model-gate/callback HTTP/1.1
Content-Type: application/json
X-Model-Gate-Signature: t=1710000000,v1=hex_hmac_sha256
Примерен полезен товар за асинхронни резултати:
{
"event":"async.completed",
"request_id":"01J...",
"status":"completed",
"response":{"id":"msg_...","type":"message"}
}
Полетата за полезен товар могат да се разширяват с времето. Игнорирайте неизвестните полета.
Проверка на подписа
Заглавката на подписа има следния формат:
X-Model-Gate-Signature: t=<unix>,v1=<hmac_sha256>
Изчислете HMAC-SHA256 върху точния низ <timestamp>.<raw_body> използвайки тайната за обратно извикване, показана в Профил. Сравнете шестнадесетичния подпис със сравнение в постоянно време и отхвърлете времевите клейма извън вашия приет прозорец за повторение.
Доставка и повторни опити
Връщане на HTTP 200 след безопасно приемане на събитието. Отговорите, различни от 2xx, и неуспешните връзки могат да бъдат опитани повторно. Вашата крайна точка следователно трябва да бъде идемпотентна; използване request_id заедно с event като ключ за дедупликация.
Не извършвайте продължителна работа, преди да отговорите. Подредете събитието вътрешно, връщане 200и го обработва асинхронно.