За последние 24 часа нас посетил 17791 программист и 1703 робота. Сейчас ищут 1797 программистов ...

Подскажите алгоритм с api

Тема в разделе "Laravel", создана пользователем servitpol, 29 апр 2017.

  1. servitpol

    servitpol Новичок

    С нами с:
    17 авг 2016
    Сообщения:
    63
    Симпатии:
    3
    Всем привет! Мне необходимо реализовать во внутреннем сервисе компании (на laravel 5.4) проверку текстов на уникальность. Есть отличный сервис text.ru у которого есть свой api проверки уникальности https://text.ru/api-check/manual . Все здорово, все работает, текст отправляю, уникальность получаю. Но ответ от их сервиса не всегда приходит сразу.
    Т.е. принцип работы у него такой: отправляю текст, получаю уникальный $text_uid, потом с этим $text_uid стучусь опять в сервис, если уникальность проверена - получаю ответ, если нет - опять стучусь и так до тех пор пока не получу ответ.

    Я конечно могу написать скрипт чтоб стучался через ajax, а редакторам фирмы вывести на экран "крутилку", но проблема в том что редакторов много как и самих текстов которые нужно проверять.

    У меня есть альтернатива: получить ответ от их сервиса когда уникальность будет проверена. Т.е. при формировании запроса, можно отправить параметр, цитирую: "callback - ваш URL (ссылка), на которую мы отправим POST-запрос с результатами проверки сразу же после её окончания."

    Вот теперь собственно вопрос: как реализовать "прием" post-запроса и вывести его на экран редактору?

    Я себе это вижу каким-то велосипедом с 53 колесами из серии: рисую роутер post, в который прилетает ответ, полученные данные на контроллер, там разбираю данные и записываю их в бд, а на фронте у меня ajax постоянно опрашивает бд на изменения... - в общем бред!
    Подскажите пожалуйста алгоритм действий как реализовать все вышеописанное правильно и грамотно??

    З.Ы. С api еще никогда не работал, уровень знаний - год опыта.
    З.З.Ы. Гуглил, ничего толкового не нашел.
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    В принципе, идеальное решение - это использовать веб-сокеты, которые нативно поддерживаются достаточно неплохо в Laravel. К примеру, можно сторонний сервис pusher использовать. https://laravel.com/docs/5.4/broadcasting. Тогда по получении обратного запроса ваш скрипт просто отправит соответствующий сигнал. Если веб-сокеты для вас сложны, можно держать флаг в базе, и опрашивать не сервис, а это флаг
     
  3. servitpol

    servitpol Новичок

    С нами с:
    17 авг 2016
    Сообщения:
    63
    Симпатии:
    3
    @mkramer спасибо, вектор получил, буду разбираться..