Symfony. Создание API-платформы.

Нет доступа?

Получите доступ ко всему, что можно найти на этом сайте на:

1 мес. 1 год
≈900 руб. ≈3300 руб. (-80%)

Оплатить можно картой (Master Card, Visa). Для платежей из России сейчас могут быть сложности с оплатой. Если будут проблемы, напишите в личку, придумаем какое-нибудь решение.

Ссылки для оплаты доступны после регистрации.

Открою доступ к сайту на 1 месяц бесплатно за транскрибацию (перевод видео в текст) примерно 25 минут видео. Если вам интересно это предложение, напишите мне в разделе Контакты

 Курс по основам работы с API здесь.

Если вам нужно разработать или доработать проект на Symfony, можете воспользоваться моими услугами.

Что еще добавить в этот курс? Каких уроков вам не хватило?

Автор: Скачков Александр 07/10/2021 10:10:39

Подскажите пожалуйста, что делать в случае если, к примеру, есть сущность сity (список городов) и возникает задача отдавать по АПИ города и значение температуры воздуха в каждом из них?
За данными по температуре придеться обращаться к стороннему погодному АПИ, т.е., если я правильно понимаю, нужно будет сделать сервис в symfony который дергает это погодное АПИ. Но как это все правильно оформит с архитектурной стороны и откуда вызывать погодное АПи для города я не понимаю?

Автор: Дмитрий Ченгаев 08/10/2021 12:10:15

Т.к. данные температуры хранятся на стороннем сервисе - это усложняет задачу.

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

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

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

Далее просто делаете выборку с вашей базы данных и отдаете их по АПИ.

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

Автор: Скачков Александр 07/10/2021 04:10:04

А вот интересно как сделать поиск по текстовому полю? ну т.е. есть поле description="Всем привет, я Саша" и вот хочу я запрос сделать, что-бы найти все записи description где есть "Саша" (ну т.е. что-то типа LIKE "%Саша%")

Автор: Дмитрий Ченгаев 07/10/2021 09:10:58

В API Platform это делается через фильтры
https://api-platform.com/docs/core/filters/

*@ApiFilter(SearchFilter::class, properties={
* "description": "partial",
* })

partial strategy uses LIKE %text% to search for fields that contain text.

Далее в запросе используете
api/pages?description=Саша

Примерно так.

Автор: Алексей Пустоутов 16/02/2021 09:02:19

Дмитрий, еще интересует момент авторизации по токену для работы с API Platform. Как это организовать? Хотя бы в общих чертах

Автор: Дмитрий Ченгаев 16/02/2021 11:02:08

Алексей, хороший вопрос. Из того, что я нашел. Есть 2 основных типа авторизации: с помощью логина и пароля и JWT авторизация.

Логин и пароль:
//config/packages/security.yaml

firewalls:
...
main:
json_login:
check_path: app_login
username_path: email
password_path: password

JWT авторизация есть вот такая еще статья:
https://yusufbiberoglu.medium.com/jwt-authentication-and-refresh-token-on-api-platform-7c6ecaa8e236

С этим придется поразбираться )