iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 16
0
Modern Web

Laravel學習系列 第 16

LARAVEL學習 DAY 16 CRUD FOR API(二)

  • 分享至 

  • xImage
  •  

週末補前面幾篇

LARAVEL學習 DAY 16 CRUD FOR API(二)

前言

沒意外的話這篇會把API系列結束
不過大家先載個測試用好朋友
Postman
它本來只是個Google Chrome的擴充 不過最近幾個月它獨立出來了
應該是為了不想被限制住一些功能吧 還有我之前稍微研究過 Google Chrome擴充好像還需要上架費 一次性5鎂吧 之後就可以丟好多個擴充了 不過也算是佛心來的 一堆人都會放免費的擴充 雖然5鎂不貴啦

正文

接下來我們就來寫Controller的部分 我決定一次寫完一次全貼了 大家的水準都不知道是我的幾倍厲害
反正 就只是回傳成json 因為json算是用得比較廣泛的吧
url api/crud 就是index

長得像這樣 然後其他部分都差不多了
code在這裡

<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\CRUDRepository;

class CRUDController extends Controller
{
    protected $CRUDRepo;

    public function __construct(CRUDRepository $CRUDRepo)
    {
        $this->CRUDRepo = $CRUDRepo;
    }

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $posts = $this->CRUDRepo->index();
        return response()->json(['status' => 'success', 'posts' => $posts]);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $data = $request->only('title', 'content');
        $post = $this->CRUDRepo->create($data);
        return response()->json(['status' => 'success']);
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $post = $this->CRUDRepo->find($id);
        return response()->json(['status' => 'success', 'post' => $post]);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $data = $request->only('title', 'content');
        $post = $this->CRUDRepo->update($id, $data);
        if ($post) {
            return response()->json(['status' => 'success']);
        }
        return response()->json(['status' => 'error', 'message' => 'Post Not Found'], 404);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $result = $this->CRUDRepo->delete($id);
        if ($result) {
            return response()->json(['status' => 'success']);
        }
        return response()->json(['status' => 'error', 'message' => 'Post Not Found'], 404);
    }
}

在update跟destroy的部分我有稍微動了些手腳
讓它回傳404的錯誤 status code就是這樣帶的
不過非GET與POST都要這樣子帶 是一個比較麻煩的地方就是了

結語

Postman的部分我已經沒有什麼力氣講了...
https://ithelp.ithome.com.tw/articles/10195738
所以我就貼個別人的文吧...


上一篇
LARAVEL學習 DAY 15 CRUD FOR API(一)
下一篇
LARAVEL學習 DAY 17 VUE.JS(一)
系列文
Laravel學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言