Sfoglia il codice sorgente

启用 lavavel api

visuddhinanda 4 anni fa
parent
commit
81c5bb49d0

+ 32 - 0
app/course/fetch_sample.js

@@ -0,0 +1,32 @@
+//index
+//http://localhost/mint/v2/public/api/courses
+
+//show
+//http://localhost/mint/v2/public/api/courses/2
+
+//stor
+let data = {title:"visuddhimagga"};
+fetch("http://localhost/mint/v2/public/api/courses",{
+    body:JSON.stringify(data),
+    headers:{
+        'content-type':'application/json'
+    },
+    method:'POST'
+}).then(response =>response.json());
+
+//update
+fetch("http://localhost/mint/v2/public/api/courses/1?title=newtitle1",{
+    headers:{
+        'content-type':'application/json'
+    },
+    method:'PUT'
+}).then(response =>response.json());
+
+//delete
+fetch("http://localhost/mint/v2/public/api/courses/1",{
+    headers:{
+        'content-type':'application/json'
+    },
+    method:'DELETE'
+}).then(response =>response.json());
+

+ 19 - 0
v2/app/Http/Controllers/Controller.php

@@ -10,4 +10,23 @@ use Illuminate\Routing\Controller as BaseController;
 class Controller extends BaseController
 {
     use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
+
+	public function sendResponse($result,$message){
+		$response = [
+			'ok' => true,
+			'data'=>$result,
+			'message'=> $message,
+		];
+		return response()->json($response,200);
+	}
+
+	public function sendError($error, $errorMessages = [], $code = 404){
+		$response = [
+			'ok' => false,
+			'data'=>$errorMessages,
+			'message'=> $error,
+		];
+		return response()->json($response,code);
+
+	}
 }

+ 121 - 0
v2/app/Http/Controllers/CourseController.php

@@ -0,0 +1,121 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Models\Course;
+use Illuminate\Http\Request;
+use App\Http\Resources\Course as CourseResource;
+use Validator;
+
+
+class CourseController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index()
+    {
+        //
+		$courses = Course::all();
+		return $this->sendResponse(CourseResource::collection($courses),"ok");
+    }
+
+    /**
+     * Show the form for creating a new resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function create()
+    {
+        //
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Illuminate\Http\Response
+     */
+    public function store(Request $request)
+    {
+        //
+		$input = $request->all();
+
+		$validator = Validator::make($input,[
+			'title' => 'required'
+		]);
+		if($validator->fails()){
+			return $this->sendError('validation Error',$validator->errors());
+		}
+		$course = Course::create($input);
+		return $this->sendResponse(new CourseResource($course),"ok");
+    }
+
+    /**
+     * Display the specified resource.
+     *
+     * @param  int $id
+     * @return \Illuminate\Http\Response
+     */
+    public function show($id)
+    {
+        //
+		$result = Course::find($id);
+		if(is_null($result)){
+			return $this->sendError("couse not found");
+		}
+		return $this->sendResponse(new CourseResource($result),"ok");
+    }
+
+    /**
+     * Show the form for editing the specified resource.
+     *
+     * @param  \App\Models\Course  $course
+     * @return \Illuminate\Http\Response
+     */
+    public function edit(Course $course)
+    {
+        //
+    }
+
+    /**
+     * Update the specified resource in storage.
+	 * PUT 
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function update(Request $request, Course $course)
+    {
+        //
+		$input = $request->all();
+
+		$validator = Validator::make($input,[
+			'title' => 'required'
+		]);
+		if($validator->fails()){
+			return $this->sendError('validation Error',$validator->errors());
+		}
+		$course->title = $input['title'];
+		$course->save();
+		return $this->sendResponse(new CourseResource($course),"ok");
+
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  int $id
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy(Course $course)
+    {
+        //
+		$course->delete();
+		return $this->sendResponse([],"delete ok");
+
+    }
+}

+ 22 - 0
v2/app/Http/Resources/Course.php

@@ -0,0 +1,22 @@
+<?php
+
+namespace App\Http\Resources;
+
+use Illuminate\Http\Resources\Json\JsonResource;
+
+class Course extends JsonResource
+{
+    /**
+     * Transform the resource into an array.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return array
+     */
+    public function toArray($request)
+    {
+		return [
+			'id' => $this->id,
+			'title'=> $this->title
+		];
+    }
+}

+ 16 - 0
v2/app/Models/Course.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+class Course extends Model
+{
+    use HasFactory;
+
+	protected $table = 'courses';
+	protected $fillable = [
+		'title'
+	];
+}

+ 3 - 1
v2/routes/api.php

@@ -2,7 +2,7 @@
 
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Route;
-
+use App\Http\Controllers\CourseController;
 /*
 |--------------------------------------------------------------------------
 | API Routes
@@ -17,3 +17,5 @@ use Illuminate\Support\Facades\Route;
 Route::middleware('auth:api')->get('/user', function (Request $request) {
     return $request->user();
 });
+
+Route::resource('courses',CourseController::class);

+ 0 - 1
v2/routes/web.php

@@ -1,7 +1,6 @@
 <?php
 
 use Illuminate\Support\Facades\Route;
-
 /*
 |--------------------------------------------------------------------------
 | Web Routes