Слава, сваггер бесплатный - тык, к тому же под каждый язык и почти под каждый фреймворк есть готовая обертка для генерации доки. Выбираете любой язык который знаете, берете под него обертку и заливаете на общий сервер.
Конкретно на примере моего проекта - я держу сваггер на бэке, и просто заливаю на сервак все его обновления. Фронтенд разработчики ходят на мой сервер и подглядывают доку, попутно тестируют через него свои же запросы.
Еще как вариант, для решения проблемы конкурентных запросов - если ожидается небольшая нагрузка в течение дня, то можно в конфиге указать лимит запросов в определенный временной промежуток на определенный эндпоинт в приложении, в данном случае - эндпоинт обработки чеков, ставим лимит в 1 запрос на 30 секунд - и уже полегче решать проблему, даже если прилетит повторных запрос - он будет только через 30 секунд и нужные идентификаторы уже будут в бд
хеш в данном случае абслютно бесполезен, т.к. вся проверка уникальности сводится к кодам чека, которых при конкурентных запросах просто нет в бд, а вот идея перекинуть все на очереди - вполне рабочее решение, однако оно тоже будет не очень применимо если будет висеть больше 1 воркера :) т.к. с ними мы получим аналогичную картину)
Простое решение в лоб что есть - вешать индекс уникальности на код чека, и при вставке ожидать что может быть ошибка уникальности, и в этом случае не падать с этой ошибкой, а считать это нормальной ситуацией и продолжать работу.
Дмитрий, кстати возможно Вы правы, обратите внимание что в пропертях модели указан $id_faq, а в самом запросе ошибка на `faq_id`. Видимо все дело в небольшой опечатке?
Admiral89, логи ответа от сервера с эвотора вам ничего не скажут вообще, вы сами пробовали сделать POST запрос хотя бы с теми же данными на свой сервер? Как минимум локально даже пробовали проверить что он работает? И как вы выяснили что данные пустые? Может там данных и нет, потому что не доходит до этого метода)
Вы не поверите, но я знаю как это работает) Год назад занимался интеграцией эвотора с нашими кассами, кстати как я вижу - ничего особо не поменялось и большинство методов остались все также v1) Вы кстати не ответили на мои вопросы, вы сами то уверены что запрос приходит к вам? Логи, данные? Начните с этого, расставьте логирование и посмотрите в какой момент что происходит и почему отваливается.
В приложение по этому методу вы сами постучаться можете через постман или через терминал curl-ом отправить что-угодно, лишь задетектить что этот метод рабочий?
dimonchik2013, но все таки может подробнее объясните? Я все равно не понял)))
Приведенный вами пример про время выполнения - считаю нормальным когда для любого проекта написанного не только на php, а так же go/python/java применима настройка максимального таймаута ответа. Никто не будет сидеть ждать по 20 минут, на чем бы стоит ни писали бэк.
Если же вы говорите про именно потерю самих данных - ну данные из syslog у вас никуда не денутся, плюс банальное логирование всех важных эндпоинтов в проекте.
Поддержу вас, легкий порог вхождения и быстрая генерация крудов для админки - несомненные плюсы yii2. К тому же в advanced версии есть и раздельные авторизации.