Как реализовать API для записи данных с внешнего ресурса?
Здравствуйте.
Каюсь, не уверен в том, правильно ли поставлен вопрос, но в сети ничего похожего найти не получилось (возможно, не там искал).
Суть вопроса в следующем:
Есть приложение, которое работает с базой, к примеру, постов. И есть внешний ресурс, на котором можно эти посты писать.
Есть ли способ (и как он выглядит) настроить получение запросов с этого ресурса, в которых и будут передаваться посты?
Ну и после этого уже распоряжаться данными и сохранять их в базе.
Извиняюсь за возможную тривиальность вопроса.
JhaoDa, основное приложение работает с постами, для которых реализована модель, контроллер и вывод. Просто хочу знать, можно ли на другом сайте настроить форму, данные с которой отправятся в приложение и с ними можно будет работать как с родными. То есть, должен быть ajax запрос на мое приложение, который передаст написанный на внешнем сайте пост, а приложение запрос примет и сохранит пост в базе.
Напишите API для нужных вам постов. Подойдет роут apiResource (это методы index, show, store, update, destroy)
опишите их все отдельно в подходящем контроллере. Так будет удобнее в будущем, что логика для API находится обособленно.
И в стороннем приложении просто используете полученные endpoint'ы от основного.
Нужно получить все посты, условно GET blog.com/api/posts, обновляем пост PUT blog.com/api/posts/{post_id} и т.п.
Иван Вовчок, тогда проще, можете пользоваться сразу основными роутами для получения всех постов или одного.
Или сделайте 2 GET метода на получение всех постов (index) и на получение одного поста по id (show). Чтобы для внешнего сервиса были свои endpoint'ы.
И используйте их в стороннем проекте. Вы просто указали что: "..и после этого уже распоряжаться данными и сохранять их в базе", подумал что речь о внешнем ресурсе.
Anton October, сложности, возможно, нет никакой. Просто я не был уверен в том, что в Laravel предусмотрена возможность принимать подобного рода запросы, получая при этом данные
Иван Вовчок, если будете делать отдельные точки входа в свой проект то лучше их описывайте в файле routes/api.php. А также сделайте отдельную директорию App/Http/Controllers/API для API контроллеров. Это не обязательно, но будет удобнее что API и основной проект разграничены.