php restful api framework

Comet — PHP-фреймворк для быстрых REST API

Два года я писал микросервисы на Go, используя генераторы кода на базе Swagger. Получались довольно компактные и очень быстрые решения.

Сейчас использую PHP, поэтому решил найти средства для решения тех же самых задач в экосистеме языка. Знаю и люблю Laravel и Symfony, но тащить их в проекты не хотелось — слишком много батареек, за которые приходится расплачиваться крутой кривой входа в проект и производительностью.

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

В итоге появился Comet — современный фреймворк на базе PHP для разработки быстрых API, использующий наработки команд SlimPHP и Workerman. Десятки тысяч RPS на обычной виртуальной машине и латенси менее миллисекунды!

Чтобы не быть голословным, приведу результаты тестирования Comet и других популярных фреймворков. Для более честного сравнения, все тяжелые модули вроде ORM были удалены из сборки всех участников теста.

Первый кейс — имитация highload-нагрузки в виде тысяч конкурентных запросов wrk на метод, возвращающую в виде простого текста строчку приветствия «Hello, World!»:

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

Для оценки минимальной задержки использовался вариант, в котором единственный клиент последовательно отправлял по одному запросу на тот же самый ендпойнт:

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

Как видно из результатов, особенности архитектуры Comet позволяют обрабатывать в десять раз больший поток запросов с минимальными задержками, чем традиционные фреймворки.

Давайте заглянем в код, чтобы получить представление о том, с чем придется столкнуться в реальной разработке на Comet:

Все довольно прозрачно: использование роутера и замыканий обеспечивает компактный код, более похожий на то, к чему привыкли разработчики NodeJS / Express.

Я выложил на GitHub весь код и планирую расширять возможности фреймворка:

Буду рад комментариям, коммитам и, конечно — использованию Comet в реальных проектах 🙂

Источник

Простой RESTful-сервис на нативном PHP

Почти любой php-фреймворк умеет делать это из коробки. Например, Laravel, где роутинг реализован понятно и просто. Но что если нам не нужно прямо сейчас заниматься изучением новой большой темы, а хочется просто быстро завести проект с поддержкой REST API? Об этом и пойдет речь в статье.

Что должен уметь наш RESTful-сервис?

1. Поддерживать все 5 основных типов запросов: GET, POST, PUT, PATCH, DELETE.
2. Разруливать разнообразные маршруты вида
POST /goods
PUT /goods/
GET /users//info
и прочие сколь угодно длинные цепочки.

Какой функционал мы будем поддерживать?

Для товаров возможности следующие:

По пользователям для разнообразия рассмотрим несколько вариантов с GET

Как это заработает на нативном PHP?

.htaccess

index.php

Рассмотрим index.php строка за строкой. Для начала получим метод запроса.

Затем данные из тела запроса

Теперь у нас есть все данные, нужно сделать с ними что-нибудь полезное. А сделают это всего лишь 4 строки кода

GET /goods/

В ответе клиенту мы выводим нужные данные: название товара и его цену. id товара и метод в реальном приложении совершенно не обязательны. Покажем их только, чтобы убедится, что вызывается нужный метод с правильными параметрами.

Давайте попробуем на примере: откройте консоль браузера и выполните код

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

В конце функции мы написали такой код.

По http-кодам ответов сервера
Мы не будем заморачиваться с выводом разных кодов, хотя по REST-у это и стоит делать. Клиентских ошибок много. Даже в нашем простом случае уместна 405 в случае неправильно переданного метода. Намеренно не хочу усложнять.
В случае успеха сервер у нас всегда вернет 200 ОК. По хорошему, при создании ресурса стоит отдавать 201 Created. Но опять-таки в плане упрощения эти тонкости мы отбросим, а в реальном проекте Вы их легко реализуете сами.

По совести говоря, статья закончена. Думаю, Вы уже поняли подход, каким образом разруливаются все маршруты, вынимаются данные, как это протестировать, как добавлять новые запросы и т.д. Но я для завершения образа приведу реализацию оставшихся 7 запросов, которые мы обозначили в начале статьи. Попутно приведу пару интересных замечаний, а в конце выложу архив с исходниками.

POST /goods

Добавление нового товара

PUT /goods/

PATCH /goods/

Частичное обновление товара

DELETE /goods/

GET /users/

GET /users//info

Общая информация о пользователе

GET /users//orders

Получение списка заказов пользователя

Итоги и исходники

Источник

В данной статье вы узнаете, как создать простой REST API в PHP.

1. Обзор проекта

1.1 Что такое REST API?

REST API позволяет вашему приложению взаимодействовать с одним или несколькими различными приложениями, используя концепции REST.

1.2 Зачем нужен REST API?

Во многих приложениях REST API необходим, потому что это самый легкий способ создания, чтения, обновления или удаления информации между различными приложениями через Интернет или протокол HTTP. Эта информация представляется пользователю в одно мгновение, особенно если вы используете JavaScript для отображения данных на веб-странице.

1.3 Где используется REST API?

REST API может использоваться любым приложением, которое может подключаться к Интернету. Если данные из приложения могут быть созданы, прочитаны, обновлены или удалены с помощью другого приложения, это обычно означает, что используется REST API.

2. Файловая структура

3. Настройка базы данных

3.1 Создание таблицы категорий

3.2 Дамп данных для таблицы категорий

3.3 Создание таблицы товаров

3.4 Дамп данных для таблицы товаров

3.5 Подключение к базе данных

Приведенный ниже код показывает учетные данные базы данных и метод для получения подключения к базе данных с помощью PDO.

Создайте папку api и откройте её. Создайте папку config и в ней создайте файл database.php со следующим кодом.

4. Получение товаров

4.1 Создание объекта Product

Код ниже содержит класс с именем Product и несколько свойств. Также показан метод конструктора, который принимает соединение с базой данных.

4.2 Создание файла для чтения товаров

Код ниже содержит заголовки о том, кто может читать этот файл и какой тип содержимого он будет возвращать.

4.3 Подключение к базе данных и таблице товаров

Замените комментарий // подключение к базе данных будет здесь в файле read.php следующим кодом.

4.4 Чтение товаров из базы данных

Замените комментарий // чтение товаров будет здесь в файле read.php следующим кодом.

4.5 Создание метода read()

4.6 Уведомление пользователя о том, что товары не найдены

Замените комментарий // ‘товары не найдены’ будет здесь в файле read.php следующим кодом.

5. Создание товаров

5.1 Создание файла create.php

Откройте папку product и создайте в ней файл create.php со следующим содержимым.

5.2 Создание метода create()

6. Получение одного товара

6.1 Создание файла read_one.php

6.2 Создание метода readOne()

7. Обновление товара

7.1 Создание файла update.php

7.2 Создание метода update()

8. Удаление товара

8.1 Создание файла delete.php

Откройте папку product и создайте файл delete.php со следующим содержимым.

8.2 Создание метода delete()

9. Поиск товаров

9.1 Создание файла search.php

В папке product создайте файл search.php со следующим кодом.

9.2 Создание метода search()

10. Пагинация товаров

10.1 Создание файла read_paging.php

В папке product создайте файл read_paging.php со следующим кодом.

10.2 Создание файла core.php

Этот файл содержит нашу базовую конфигурацию, такую как базовый URL и переменные пагинации.

Откройте папку config и создайте в ней файл core.php со следующим содержимым.

10.3 Создание метода readPaging()

10.4 Создание метода count()

Так же в классе Product (файл product.php) добавьте метод count() для создания массива пагинации.

10.5 Получение массива пагинации

11. Получение категорий

11.1 Создание объекта Category

Откройте папку objects и создайте новый файл category.php со следующим кодом.

11.2 Создание файла read.php

Создайте новую папку category в корне, и в ней файл read.php со следующим кодом.

11.3 Создание метода read()

Если вам понравилась данная статья, рекомендую к прочтению создание регистрации и авторизации в php с использованием JWT.

Надеюсь, вам понравилась данная информация. Если вам интересна тема web-разработки, то можете следить за выходом новых статей в Telegram.

Источник

Top 7 Best PHP API Frameworks for REST APIs

Last Updated on April 20, 2021 by Robert Davis 2 Comments

There are many PHP Frameworks, but not all are easy to learn. Also, not all PHP Frameworks enable easy REST API development. In this article, we will review the most popular PHP API Frameworks that are actively developed. Also, they are optimized for REST APIs or Microservices. Microservices and APIs work together to support complex systems. Frameworks that are optimized for Microservices usually do well for APIs. But first, a little background is in order.

What is a REST API?

Design Constraints

There are 6 key constraints to consider when building a REST API:

Uniform interface

A REST API must use conventions for its interfaces like HTTP does with the standard methods of GET and POST. Each resource should map to a single endpoint (you can think of this as a webpage). This also means that a developer’s learning curve only applies to the first endpoint. They should be able to follow a similar approach for all other endpoints.

Client-server

There should be no coupling or dependency between the client and server applications in a REST API integration. Each side should be able to evolve independently of the other. This preserves a constant interface between them.

Stateless

Cacheable

Caching can happen in the client, not the server. Within the response from the API can be caching instructions. These tell whether the client can cache the supplied data and for how long.

Layered system

This constraint restricts knowledge of the server to the interface only. That means you can expand the underlying logic and data structure over time. This can happen without affecting the API interface so that remains constant.

Code on demand (optional)

Dr. Fielding referred to downloading Java applets when describing this constraint. But for a PHP REST API, it could mean that an API response includes executable code. This code can be in any client-side language (like Javascript). The code can activate a widget or perform some action within the client.

Main Criteria for inclusion in this list

The main criteria used for selecting the best PHP Frameworks for developing REST APIs are as follows:

Based on those three criteria, this is what I’ve found as a list of the top contenders for PHP API Frameworks:

What are the best PHP API Frameworks for REST APIs?

Lumen

The stunningly fast micro-framework by Laravel.

Guzzle

Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and trivial to integrate with web services.

Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs.

Other Notable PHP API Frameworks

Leaf PHP

Leaf is a PHP micro framework that helps you create clean, simple but powerful web apps and APIs quickly

PHP starter kit that helps you quickly write simple yet powerful web applications and APIs without any framework

On the GitHub home we see the beginning of a simple application:

Also, there is a LeafAPI package created specifically for API development. It replaces the View in “Model-View-Controller” design with a “Request-Response” layer.

Swoft

PHP Microservice Full Coroutine Framework

Ubiquity

PHP rapid development framework

Fat Free Framework

A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust web applications – fast!

This is another micro framework focused on fast development with a gentle learning curve. There is an active community in a google group as well as 403 questions on StackOverflow tagged fat-free-framework. There are 13 contributors and 35 releases in Github but the latest commit was over 5 months ago so it may not be actively developed anymore.

Conclusion

See below for a table of the PHP Frameworks we’ve discussed:

Summary: Best PHP Frameworks for REST APIs

PHP FrameworkFocus of FrameworkLearning Curve/Design PatternGithub StatisticsStackOverflow Statistics
LumenFast micro-services and APIsRepository Pattern commonly used93 releases, 181 contributors, and last commit was 4 hours agoOver 2000 questions tagged lumen
GuzzleHTTP requests and Microservice integrationEasier than CURL, no dictated design pattern124 releases, 313 contributors, and the last commit was 10 days ago.Over 1900 questions tagged guzzle
SlimSimple yet powerful web applications and APIs.Factory Method Pattern96 releases and 198 contributors in github. Latest commit is 8 days old.141 StackOverflow questions tagged both API and slim, and over 2600 tagged slim.
Leaf PHPClean, simple, and powerful web apps and APIs.Similar to MVC but modified for APIs.11 releases and 2 contributors. Latest commit one month old.None yet
SwoftCoroutinesConcurrency design pattern24 contributors and 26 releases on Github. More active in Chinese than English.None yet
UbiquitySpeed, not just for APIsMVC design pattern10 contributors and 28 releases on Github. The latest commit was 2 days ago.25 questions tagged Ubiquity-Framework.
Fat Free FrameworkFast learning curveNo specific pattern dictated13 contributors and 35 releases. But the latest commit was 5 months ago.403 questions tagged fat-free-framework

Источник

Какой лучше выбрать PHP RESTful-фреймворк?

Необходимо выбрать php-фреймворке для добавления информации в БД (MySQL) через API.

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

ivan99, для меня phalcon, а для вас, попробуйте оба.
у фалкона преимущество в том, что он скомпилен в модуль, это очень быстро

оффтопик: а еще лучше golang, буквально неделя изучения и уже можно что-то сносное и очень быстрое написать, но это уже совсем другая история. )

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

Ну все фреймворки же подходят, в том числе и микро, к микро ORM присадить нужно

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

Сам я расматривал тоже:
1 Slim
2 Phalcon, либо
3 Спец. решения типа api-platform.com и др заточенного под создание АПИ

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

любой фреймворк.(их не так уж много)

Потому что слабое звено здесь не выбранный фреймворк, а «средний программист без ларавел образования».

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

Ответ не засчитан, один и тот же програмист на разных инструментах напишет тот же самый результат с разными трудозатратами, как то так. У разных фреймоврков разнятся как возможности так и перспективы.

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

А советовать будут каждый свой фреймворк, это бессмысленные холиварные вопросы из разряда андроид или ios.

Все фреймворки имеют пакеты или поддержку всего что вам нужно для разработки любого апи.
При этом скорость и всё остальное практически полностью зависит от того как это реализовать.

Если вы не умеете в принципе писать нормальный код, то выбор «правильного» фреймворка вам ничем не поможет.

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

это не из моего вопроса а из моего комментария к вашему ответу гдле я показ что он неверен так как хороший програмист необязательно обязан знать ларавел

php restful api framework. Смотреть фото php restful api framework. Смотреть картинку php restful api framework. Картинка про php restful api framework. Фото php restful api framework

По всем остальным пунктам вам уже ответили и перечислили все возможные варианты.
Они ВСЕ умеют делать то что вам нужно. При этом скорость от фреймворка зависеть будет на сотую долю процента, и на 99.9% от кода написанного программистом, а не разработчиками фреймворка.

Сейчас плюс минус тонны сайтов делают JS фронтенд и бекенд отдельно, и при этом используют любые фреймворки для этих целей.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *