iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 20
1

接下來定義 post 的所有 API route 以及是否需要 middleware,post 引用的 middleware 也是與使用者認證有關,因此只須運用之前的 token.auth 即可。

  • API routes 以及引用 middleware

    Route::get('posts', 'PostsController@index');
    Route::get('posts/{id}', 'PostsController@show');
    Route::post('posts', 'PostsController@store')->middleware('token.auth');
    Route::put('posts/{id}', 'PostsController@update')->middleware('token.auth');
    Route::delete('posts/{id}', 'PostsController@destroy')->middleware('token.auth');
    

    除此之外,還會再建一支 API,該 API 為某個使用者的所有貼文。

    Route::get('users/{user_id}/posts', 'PostsController@userPosts');
    

    正好此支 API 會運用到關聯性的概念,因此拿來當例子是一個不錯的選擇。

  • 權限說明

    以下權限的定義並非所謂的正確答案,可以視情況調整

    method admin regular user Unauthenticated user

    index| - | - |O
    show| - | - |O
    store|O|O|X
    update|O|只有自己|X
    delete|O|只有自己|X
    userPosts|-|-|O

    說明:
    index、show、userPosts 為任何人都可以看得到
    store 除了未登入的使用者之外都可以執行
    update 和 delete 除了 admin 之外,只有該貼文屬於自己的時候請求才能夠被執行

下一篇來解說 resource controller。


上一篇
Day 19 : 貼文 ( Model ) [ 遇到一個坑 > < ]
下一篇
Day 21 : 貼文 ( Resource Controller )
系列文
從零開始的Laravel RESTful api30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言