Swagger документация для REST API на Laravel

Swagger — это фрэймворк для описания, документирования и визуализации REST API. На основании спецификации Swagger можно генерировать исходный код для библиотек клиентских приложений, текстовую документацию для пользователей, варианты тестирования и др. Для этого имеется множество инструментов для различных языков программирования и платформ.

В данной статье мы рассмотрим, как использовать Swagger в Laravel для документирования REST API.

Читать далее «Swagger документация для REST API на Laravel»

Пример создания GraphQL API на Laravel. Часть 2

В предыдущей статье мы разработали простой GraphQL API для создания и получения информации о пользователях. Сегодня рассмотрим более сложные возможности, такие, как получение вложенных ресурсов, кастомные типы полей, жадная загрузка зависимых моделей (eager loading).

Читать далее «Пример создания GraphQL API на Laravel. Часть 2»

Пример создания GraphQL API на Laravel. Часть 1

В одной из предыдущих статей мы разобрались, что такое GraphQL в теории. Сегодня рассмотрим пример создания GraphQL API на Laravel.

Читать далее «Пример создания GraphQL API на Laravel. Часть 1»

Запускаем PHPUnit тесты внутри Docker-контейнера в PhpStorm

Если вы используете Docker для запуска проекта локально, то наверняка сталкивались со сложностями при запуске тестов. PhpStorm позволяет запускать тесты прямо из кода, для этого нужно лишь кликнуть правой кнопкой мыши на нужном тесте и нажать Run, но с использованием это кажется не так просто на первый взгляд. К счастью, PhpStorm имеет встроенную интеграцию с Docker, которая в том числе позволяет запускать тесты прямо внутри контейнера.

Читать далее «Запускаем PHPUnit тесты внутри Docker-контейнера в PhpStorm»

Повторная отправка HTTP-запросов в Guzzle с помощью RetryMiddleware

Если приложение обращается к каким-либо сторонним сервисам через API, часто встречается ситуация, что сторонний сервис временно недоступен, или перегружен. Т.к. от результатов запроса может зависеть дальнейшее выполнение скрипта, требуется предусмотреть такую ситуацию, и временный отказ внешнего сервиса не должен вызывать серьезных сбоев в работе приложения.

Одним из решений будет повторная отправка http-запроса через заданный интервал времени, если запрос не был выполнен. Это можно реализовывать вручную при каждом обращении к стороннему сервису, но гораздо удобнее иметь готовый инструмент, который инициализируется одной строкой кода, когда это потребуется. О таком инструменте и пойдет речь в этой статье.

Читать далее «Повторная отправка HTTP-запросов в Guzzle с помощью RetryMiddleware»

Тестирование middleware в Laravel

Middleware — это очень удобный инструмент Laravel для фильтрации запросов и выполнения других функций. Возникает вопрос, как убедиться, что middleware работает правильно. В данной статье я расскажу, как можно протестировать middleware.

Читать далее «Тестирование middleware в Laravel»

Оптимизация оператора switch в PHP 7.2

В статье Что нового в PHP 7.2 мы рассмотрели основные изменения новой версии php, релиз которой ожидается в конце ноября. Сегодня мы рассмотрим небольшую, но полезную оптимизацию оператора switch, добавленную в php 7.2. Эта статья является вольным переводом статьи PHP 7.2’s «switch» optimisations от Дерика Ретанса, автора Xdebug и других полезных инструментов для php.

Читать далее «Оптимизация оператора switch в PHP 7.2»

Отладка PHP-приложений в Docker с помощью PhpStorm и Xdebug

В предыдущей статье мы разобрали, как настроить локальную среду разработки с помощью Docker Compose.  Сегодня мы разберемся, как настроить отладку php-приложений в Docker c помощью Xdebug.

Читать далее «Отладка PHP-приложений в Docker с помощью PhpStorm и Xdebug»

Настройка локальной среды разработки с помощью Docker Compose

При разработке веб-приложений, одной из проблем является запуск локальной версии приложения. Так как со временем проект обрастает зависимостями, процесс установки приложения усложняется. Приходится писать документацию по установке. При этом возникает новая проблема — документацию нужно поддерживать в актуальном состоянии, иначе она теряет смысл, но программисты не любят это делать. Так же конфигурационный файл локальной версии приложения как правило отличается от версии, хранящейся в системе контроля версий. Поэтому, когда в команду приходит новый сотрудник, начинаются проблемы с развертыванием локальной версии приложения, так как приходится по крупицам собирать изменения, которые не были внесены в документацию по установке.

Проблему настройки локальной среды разработки можно решить с помощью Docker Compose — инструмента, позволяющего настраивать и запускать несколько docker-контейнеров одновременно. Docker Compose использует YAML файл для описания сервисов, требуемых приложению. После настройки, все сервисы можно установить и запустить одной командой.

Читать далее «Настройка локальной среды разработки с помощью Docker Compose»

Настройка Continuous Delivery с помощью Jenkins

Continuous Delivery — это процесс доставки новых функций, обновлений, исправлений ошибок на сервера максимально быстро и безопасно, с минимальным количеством ручного труда. В данной статье будет рассмотрен пример настройки continuous delivery с помощью Jenkins.

Читать далее «Настройка Continuous Delivery с помощью Jenkins»