Это проект, демонстрирующий базовый функционал Symfony — свободного фреймворка, написанного на языке программирования PHP.
Здесь реализовано:
-
REST API для работы с одной сущностью —
Product
-
Методы создания, изменения, получения информации по ID сущности (записи), получения списка всех сущностей и удаления:
-
[POST]
/api/products/create
С телом вида:{ "name": "Товар", "price": 1000, "description": "Неведомая хрень" }
Ответ вида:
{ "id": 14, "name": "Товар", "price": 1000, "description": "Неведомая хрень" }
Пример curl:
curl -X POST http://localhost:8000/api/products/create \ -H "Content-Type: application/json" \ -d '{"name":"Товар", "price":1000, "description":"Неведомая хрень"}'
-
[PATCH]
/api/products/edit/{id}
С телом вида:{ "name": "Неизвестный товар овар", "price": 1000000, "description": "Неведомая хрень номер два" }
Ответ вида:
{ "id": 2, "name": "Неизвестный товар овар", "price": 1000000, "description": "Неведомая хрень номер два" }
Пример curl:
curl -X PATCH http://localhost:8000/api/products/edit/2 \ -H "Content-Type: application/json" \ -d '{"name":"Неизвестный товар овар", "price":1000000, "description":"Неведомая хрень номер два"}'
-
[GET]
/api/products/{id}
Ответ вида:{ "id": 2, "name": "Неизвестный товар овар", "price": 1000000, "description": "Неведомая хрень номер два" }
Пример curl:
curl http://localhost:8000/api/products/2
-
[GET]
/api/products
Ответ вида:{ "meta": { "count": 2 }, "data": [ { "id": 5, "name": "Keyboard", "price": 1999, "description": "Ergonomic and stylish!" }, { "id": 6, "name": "Товар", "price": 1000, "description": "Неведомая хрень" } ] }
Пример curl:
curl http://localhost:8000/api/products
-
[DELETE]
/api/products/delete/{id}
Ответ вида:{ "success": true }
Пример curl:
curl -X DELETE http://localhost:8000/api/products/delete/2
-
[GET]
/about
-
-
-
Работа с БД PostgreSQL
-
Обработка исключительных ситуаций
-
Валидация полей объекта
-
Журналирование
-
"php": ">=8.1"
-
Пустая БД PostgreSQL с параметрами как в .env (в нашем случае:
simfony:simfony@127.0.0.1:5432/simfony?serverVersion=16&charset=utf8
)
-
Web server (для разработки и проверки работоспособности достаточно команды):
symfony server:start
-
Перед запуском приложения выполнить миграции:
./bin/console doctrine:migrations:migrate
-
Непосредственно запуск:
symfony server:start
предварительно нужно прописать переменную среды
export PATH="$HOME/.symfony5/bin:$PATH"