Создайте Laravel REST API с помощью разработки через тестирование
API, который придерживается ограничений инженерного стиля REST и учитывает возможность совместной работы с веб-службами RESTful, известен как RESTful API. Изменение состояния иллюстрируется REST в TDD против BDD. В статье обсуждается создание Laravel REST API с помощью Test-Driven Development.
Вы можете создать Laravel REST API, используя разработку через тестирование, установив драйвер JWT по умолчанию, следуя инструкциям по установке, включая методы аутентификации, и используя php artisan make.
Между базой данных и контроллерами он функционирует как слой для преобразования данных. Вы можете преобразовать модели и коллекции в формат JSON, используя ресурсы Laravel Eloquent. Читайте ниже, чтобы узнать больше о создании Laravel REST API с помощью Test-Driven Development.
Что такое REST API?
API передачи репрезентативного состояния — это архитектурный проект или набор концепций для интерфейса прикладной программы (API). REST API можно использовать с помощью HTTP-запросов с типами информации GET, PUT, POST и DELETE, которые означают просмотр, обновление, создание и удаление действий, связанных с ресурсами.
Основное преимущество REST заключается в том, что он предлагает большую гибкость и позволяет более эффективно использовать этот API.
В этом руководстве используется Laravel REST API с разработкой через тестирование.
Что такое Ларавель?
Laravel Passport предоставляет полное серверное решение OAuth2 за считанные минуты для вашего приложения Laravel. Создание паспорта возможно через сервер League OAuth2, созданный Энди Миллингтоном и Саймоном Хэмпом. В структуру Laravel включена форма входа. Для реализации аутентификации API и проверки пользователя API им нужны токены.
В общем, API для Laravel REST API с разработкой через тестирование требуют токен для доступа или аутентификации пользователя. Пакет паспорта Laravel, который поставляется с инфраструктурой Laravel, предлагает комплексную реализацию FTP-сервера OAuth2. Это позволит протестировать конкретную функциональность, а не конкретный фрагмент кода. Примеры включают следующее:
- Проверьте, создается ли пользователь при отправке действительной формы регистрации.
- Проверьте, удаляется ли товар из корзины, когда пользователь нажимает кнопку удаления.
- Проверьте, отображается ли конкретный результат, когда пользователь вводит конкретный запрос.
Написание кода
Следуйте приведенным ниже шагам при создании Laravel REST API с помощью разработки через тестирование.
Но сначала установите драйвер JWT по умолчанию в настройках аутентификации для запуска. Затем включите следующий код в файл route/api.php.
‘апи’, ‘префикс’ => ‘авторизация’]
функция () {
Route::post(‘authenticate’, ‘AuthController@authenticate’)->name(‘api.authenticate’);
Route::post(‘register’, ‘AuthController@register’)->name(‘api.register’);
});
- Настройте модель пользователя аналогично конфигурации драйвера. Он просто реализовал JWTSubject и добавил необходимые методы.
- После этого включите методы аутентификации в контроллере. Запустите php artisan make: controller AuthController, чтобы добавить методы. Этот очень простой шаг в Laravel REST API с разработкой через тестирование добавит в контроллер методы аутентификации и регистрации.
В методе регистрации проверьте ввод, создайте нового пользователя, используя ввод, а затем на его основе создайте токен для пользователя. Проверьте ввод, попытайтесь войти в систему и, в случае успеха, верните токен в методе аутентификации.
- А вот и лучшая часть Laravel REST API с разработкой через тестирование. Чтобы сгенерировать тестовые классы, запустите php artisan make test AuthTest. Новые тесты/Feature/AuthTest теперь должны включать методы.
Основная идея тестов заключается в том, что в идеальном мире они должны быть независимы друг от друга и от состояния базы данных. Следует помнить одну вещь: как добавлять и удалять пользователей из каждого теста.
- Запустите $vendor/bin/phpunit или $ phpunit на этом этапе, если он установлен глобально. Выполнение этого должно привести к правильным утверждениям. Если это не так, просмотрите журналы, внесите необходимые исправления и повторите тестирование.
- Вы можете добавить элемент для CRUD теперь, когда аутентификатор Microsoft работает. Теперь используйте php artisan create, чтобы добавить модель. затем запустите миграцию.
- Конечные точки теперь требуются для управления рецептами. Сначала создайте контроллер RecipeController, используя php artisan для создания контроллера. Также включите метод create в контроллер. Добавьте создающую конечную точку в файл route/api.php.
- Код объясняет Laravel REST API с разработкой через тестирование. Генерация токена и регистрация пользователя обрабатывает один метод для создания токена для метода testCreate().
Обратите внимание на использование практичного трейта RefreshDatabase в Laravel, позволяющего легко обновлять базу данных после каждого теста.
- Если все пойдет по плану, вы должны найти ошибку в REST API Laravel с разработкой через тестирование. Единственным отличием было добавление пользовательского файла для всего класса, за исключением дополнительного теста. Таким образом, метод аутентификации устанавливает пользовательский файл для последующих действий и создает токен.
- Сделайте $vendor/bin/phpunit, если вы хотите подтвердить только текущий статус ответа.
Часто задаваемые вопросы
Какой инструмент используется для TDD?
Программисты могут разрабатывать и тестировать фиктивные объекты, используя автоматизированную среду модульного тестирования Mockito для разработки через тестирование (TDD). Проще говоря, Mockito — это фреймворк, который разработчики используют для быстрого создания различных тестов. Другие инструменты и фреймворки также широко доступны.
Кто пишет тесты в TDD?
Команды разработчиков программного обеспечения, работающие в TDD, создают тестовые примеры, прежде чем писать соответствующий код для пользовательского описания, которое им предоставляется. Когда приемочное испытание проходит успешно, к коду применяется рефакторинг, готовый к работе.
Подходит ли Laravel для REST API?
Одной из пяти лучших бэкэнд-фреймворков для разработки RESTful API для веб-сайтов по-прежнему является PHP-фреймворк Laravel с открытым исходным кодом. Легко протестировать конечные точки API с помощью удобного набора тестов Laravel.
TDD для разработчиков или тестировщиков?
TDD не включает в себя тестирование, но дает доступ к некоторым превосходным артефактам, которые полезны и хорошо помогают в тестировании. Дизайн кода является основным направлением TDD. Цикл TDD позволяет программистам быстрее получать обратную связь, чтобы уверенно принимать решения о дизайне кода.
Является ли разработка через тестирование навыком?
Основные навыки программирования, такие как разработка через тестирование (TDD), должны быть выше. Идея TDD заключается в том, чтобы программное обеспечение начало проверять себя. Поскольку модульные тесты автоматизируются и чаще выполняются как часть TDD, качество и надежность программного обеспечения улучшаются.
Каково другое название TDD?
Методология разработки программного обеспечения, разработка через тестирование (TDD), иногда называемая проектированием через тестирование, объединяет модульное тестирование, программирование и переписывание исходного кода.
Заменяет ли TDD модульное тестирование?
Методология разработки программного обеспечения, называемая TDD, сосредоточена на понимании предметной области и выполнении требований. На самом деле цикл TDD включает модульные тесты. Целью базовых модульных тестов является проверка написанного исходного кода и предотвращение ошибок и регрессии.
Заключение
Это все о создании Laravel REST API с разработкой через тестирование. В дизайне Laravel большое внимание уделяется тестированию. В PHPUnit встроена поддержка функционального тестирования Laravel. Каталог Laraveltests содержит утверждения Laravel и вспомогательные функции для TestCase. Следовательно, вы можете легко создать Laravel REST API, написав код, приведенный в статье.