Всё сделал по этой статье https://arjunphp.com/create-rest-laravel-framework/
Запустил сервер php artisan serve
И как теперь получить данные?
Пишу /api/task выдаёт
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message
И почему роуты надо прописывать в api.php, а не в web.php?
Я разобрался, надо это прописать http://127.0.0.1:8000/api/task/2
А как использовать метод put и delete?
Route::get('tasks','TaskController@index');
// get specific task
Route::get('task/{id}','TaskController@show');
// delete a task
Route::delete('task/{id}','TaskController@destroy');
// update existing task
Route::put('task','TaskController@store');
// create new task
Route::post('task','TaskController@store');
public function destroy($id)
{
//Get the task
$task = Task::find($id);
if (!$task) {
return $this->response->errorNotFound('Task Not Found');
}
if($task->delete()) {
return $this->response->withItem($task, new TaskTransformer());
} else {
return $this->response->errorInternalError('Could not delete a task');
}
}
public function store(Request $request) {
if ($request->isMethod('put')) {
//Get the task
$task = Task::find($request->task_id);
if (!$task) {
return $this->response->errorNotFound('Task Not Found');
}
} else {
$task = new Task;
}
$task->id = $request->input('task_id');
$task->name = $request->input('name');
$task->description = $request->input('description');
$task->user_id = 1; //$request->user()->id;
if($task->save()) {
return $this->response->withItem($task, new TaskTransformer());
} else {
return $this->response->errorInternalError('Could not updated/created a task');
}
}
Писать роуты нужно в api.php
потому что эти роуты не будут доступны через браузер напрямую. Эти роуты доступны для запросов со специальным header
. Например, используя программу Postman (или любую другую) можно слать запросы к api.
Ниже указан закголовок, который определяет, что запрос идёт к API
Content-Type: application/json
Вместе с тем каждый запрос имеет свой Request Method
- POST, GET, DELETE, PUT и др. Он тоже передаётся запросом.
Библиотеки для работы с api через js - axios, например.
Также все ваши роуты можно записать одной строкой, используя ресурс. Подразумевается, что в контроллере будут методы show, destroy и т.д. Можно некоторые запретить или не писать вовсе. Смотрите документацию (подраздел API Resource Routes).
Route::apiResource('tasks', 'TaskController');
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вобщем у меня возможно необычная проблемаТестирую авторизацию через Вконтакте на localhost
Казалось бы, обычный кодЕсли есть айди в таблице, кидаем на страницу бан и никуда больше не пускаем
Требуется взять все то, что находится между (" "::" и между "::" ")