Laravelで簡単な todo list アプリを開発中です。
todoの登録、削除、表示のroutingのApi作成中です。
postmanを使ってApiのテストをしていますが、上手くデータが返ってきません。
Api作成過程のどこが間違っているかわからないため、教えて頂ければと思い質問させて頂きます。
以下コードです。
routes/Api.php
php
1<?php 2 3use Illuminate\Http\Request; 4 5Route::resource('todo', 'Todocontroller');
app/Http/Controllers/TodoController.php
PHP
1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use App\Todo; 7use Auth; 8 9class Todocontroller extends Controller 10{ 11 12// ログインしないと見れない 13public function __construct(){ 14$this->middleware('auth'); } 15 16 //todo表示 17public function index() { 18$todos = Todo::where('user_id',Auth::user()->id)->orderBy('created_at', 'asc')->get(); 19return view('home'); 20} 21 22// todo登録 23public function store(Request $request) { 24$todos = new Todo; 25$todos->user_id = Auth::user()->id; 26$todos->name = $request->name; 27$todos->save(); 28return redirect('/'); 29} 30 31// todo削除 32public function destroy(Todo $todo) { 33$todo->delete(); 34return redirect('/'); 35} 36
$ php artisan route:list
| Domain | Method | URI | Name | Action | Middleware | +--------+-----------+------------------------+------------------+------------------------------------------------------------------------+------------+ | | GET|HEAD | / | | App\Http\Controllers\Todocontroller@index | web,auth | | | GET|HEAD | api/todo | todo.index | App\Http\Controllers\Todocontroller@index | api,auth | | | POST | api/todo | todo.store | App\Http\Controllers\Todocontroller@store | api,auth | | | GET|HEAD | api/todo/create | todo.create | App\Http\Controllers\Todocontroller@create | api,auth | | | GET|HEAD | api/todo/{todo} | todo.show | App\Http\Controllers\Todocontroller@show | api,auth | | | PUT|PATCH | api/todo/{todo} | todo.update | App\Http\Controllers\Todocontroller@update | api,auth | | | DELETE | api/todo/{todo} | todo.destroy | App\Http\Controllers\Todocontroller@destroy | api,auth | | | GET|HEAD | api/todo/{todo}/edit | todo.edit | App\Http\Controllers\Todocontroller@edit | api,auth |
postmanでHTTPメソッドをPOSTにし、横のURL入力欄にhttp://localhost:8000/api/todoと入力。
タブメニューのBodyでkeyとvalueを設定してSendを押すことでレコードを新規作成するはずなんですが、この時点で、一番最初のログインページのhtmlが表示されます。入力したkeyとvalueは表示されません。
HTTPメソッドをGETにしてsendを入力すると、JSONで一覧が返ってくるはずですが、ここでもやはり最初のログインページのhtmlが表示されます。
個人的にはMiddlewareのapi,auth辺りが怪しいのかな?とか思いましたが、ログインしないと見れないページにしたいので、どこをどう変えれば良いかわからず困っています。
初心者の質問で申し訳ございませんが、ご存知の方教えて頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー