REST API ใน laravel คืออะไร: ทุกสิ่งที่คุณจำเป็นต้องรู้

เผยแพร่แล้ว: 2022-11-03

โลกกำลังเปลี่ยนไปสู่ความง่ายในการใช้อุปกรณ์พกพาและมองหาวิธีแก้ไขปัญหาทางออนไลน์โดยสิ้นเชิง การออกแบบเว็บและการพัฒนาเว็บมีความก้าวหน้าอย่างมากในโลกปัจจุบัน

ความต้องการส่วนใหญ่หันไปใช้สมาร์ทโฟนเนื่องจากการพัฒนาเว็บไซต์รวมถึงการพัฒนาแอปบนอุปกรณ์เคลื่อนที่ด้วย ดังที่กล่าวไปแล้ว สำหรับแอปบนอุปกรณ์เคลื่อนที่ แบ็กเอนด์ต้องการ API ที่สงบ

หากคุณไม่รู้ว่า REST API คืออะไร ก็ไม่เป็นไร! เรามีคุณครอบคลุม

ในบล็อกนี้ ฉันจะอธิบายว่า API ที่สงบคืออะไรและทำงานอย่างไร ฉันจะอธิบายวิธีพัฒนา API ที่สงบใน Laravel ด้วย

มาเริ่มกันเลย…

REST API คืออะไร?

APi คือ Application Programing Interface ซึ่งช่วยให้เราเชื่อมต่ออุปกรณ์เครื่องหนึ่งกับอุปกรณ์อีกเครื่องหนึ่งได้ เช่น คู่สมรส เรามีเว็บไซต์หนึ่งอยู่ และตอนนี้เราต้องการสร้างแอปบนอุปกรณ์เคลื่อนที่หนึ่งแอป เราจะสร้าง API เพื่อเชื่อมต่อข้อมูลกับอุปกรณ์ เราต้องใช้ JSON ข้อมูลที่จะส่งผ่านในอุปกรณ์เพื่อให้สามารถเชื่อมต่อกับ API เท่านั้น

บางครั้ง จำเป็นต้องมี network communicatREST API หรือ Representational State Transfer API

มันทำงานอย่างไร?

ในขั้นแรกเราต้องติดตั้งแอป laravel ในระบบของเรา เพื่อให้เราสามารถติดตามเอกสารอย่างเป็นทางการของ laravel ซึ่งจะช่วยให้เราก้าวต่อไปได้ นี่คือลิงค์ของเอกสารซึ่งสามารถติดตามเพื่อติดตั้งแอปพลิเคชั่น laravel:

http://laravel.com/

ในการติดตั้งแอป โปรดใช้คำสั่งนี้ แต่โปรดตรวจสอบให้แน่ใจว่าคุณควรมีผู้แต่งในระบบของคุณ เนื่องจากผู้แต่งเป็นเครื่องมือการพึ่งพาซึ่งช่วยในการติดตั้งการพึ่งพาทั้งหมดในแอปพลิเคชัน คุณสามารถไปตามลิงก์นี้:

https://getcomposer.org/download/

เมื่อคุณติดตั้ง composer แล้ว คุณสามารถดาวน์โหลด laravel ได้ โปรดใช้คำสั่งนี้:

นักแต่งเพลง create-project --prefer-dist laravel/laravel laravel-sanctum-auth

เมื่อติดตั้งโปรเจ็กต์แล้ว จำเป็นต้องตั้งค่ารายละเอียดฐานข้อมูลในไฟล์ .ENV ดังนั้นให้กรอก nane ฐานข้อมูลของคุณในไฟล์ ENV

มันทำงานอย่างไร ขั้นตอนต่อไปคือการติดตั้งแพ็คเกจ API มีแพ็คเกจมากมาย แต่คุณสามารถติดตั้งได้ตามต้องการ

ดังนั้นในการติดตั้งแพ็คเกจ คุณต้องทำตามคำสั่งตามที่ระบุในเอกสาร laravel ขณะที่ฉันกำลังจะใช้ Sanctum ฉันจะใช้คำสั่งนี้:

นักแต่งเพลงต้องการ laravel/sanctum

  หลังจากที่ฉันเรียกใช้คำสั่งนี้ แพ็คเกจของฉันจะได้รับการติดตั้งและจะพร้อมใช้งาน เพียงทำตามภาพหน้าจอด้านล่าง: มันทำงานอย่างไร2

เมื่อเราตั้งค่าแพ็คเกจเสร็จแล้ว ขั้นตอนต่อไปคือการสร้างแบบจำลองสำหรับฐานข้อมูล เราจะสร้างหนึ่งโหมดและการย้ายซึ่งจะเชื่อมต่อกับฐานข้อมูลโดยตรง ,

ไฟล์ app/Models/User.php

<?php

เนมสเปซ App\รุ่น;

ใช้ Illuminate\Contracts\Auth\MustVerifyEmail;

ใช้ Illuminate\Database\Eloquent\Factories\HasFactory;

ใช้ Illuminate\Foundation\Auth\User เป็น Authenticatable;

ใช้ Illuminate\Notifications\Notifiable;

// สถานศักดิ์สิทธิ์

ใช้ Laravel\Sanctum\HasApiTokens;

คลาสผู้ใช้ขยาย Authenticatable

{

ใช้ HasApiTokens, HasFactory, Notifiable;

 

/**

* คุณลักษณะที่กำหนดได้จำนวนมาก

*

* @var array

*/

ป้องกัน $fillable = [

'ชื่อ',

'อีเมล',

'รหัสผ่าน',

];

 

/**

* คุณลักษณะที่ควรซ่อนสำหรับอาร์เรย์

*

* @var array

*/

ป้องกัน $hidden = [

'รหัสผ่าน',

'remember_token',

];

 

/**

* แอตทริบิวต์ที่ควรแคสต์เป็นประเภทเนทีฟ

*

* @var array

*/

ป้องกัน $casts = [

'email_verified_at' => 'datetime',

];

}

มันทำงานอย่างไร 3

  ตอนนี้เราต้องสร้างตัวควบคุมหนึ่งตัว ดังนั้นโปรดใช้คำสั่งนี้เพื่อสร้างตัวควบคุม

ช่างฝีมือ PHP ::controller CONTROLLER NAME

ไฟล์ app/Http/Controllers/API/BaseController.php:

<?php



เนมสเปซ App\Http\Controllers\API;

ใช้ Illuminate\Http\Request;

ใช้ App\Http\Controllers\Controller เป็นตัวควบคุม



คลาส BaseController ขยาย Controller

{

/**

* วิธีการตอบสนองความสำเร็จ

*

* @return \Illuminate\Http\Response

*/

ฟังก์ชันสาธารณะ sendResponse($ผล, $ข้อความ)

{

$ตอบกลับ = [

'ความสำเร็จ' => จริง

'data' => $result,

'ข้อความ' => $ข้อความ

];

 

ตอบกลับ ()->json($response, 200);

}



/**

* ตอบกลับการตอบกลับข้อผิดพลาด

*

* @return \Illuminate\Http\Response

*/

ฟังก์ชันสาธารณะ sendError($error, $errorMessages = [], $code = 404)

{

$ตอบกลับ = [

'ความสำเร็จ' => เท็จ

'ข้อความ' => $ผิดพลาด

];

 

if(!empty($errorMessages)){

$response['data'] = $ข้อผิดพลาดข้อความ;

}

 

ตอบกลับ ()->json($response, $code);

}

}

โปรดทราบ : เมื่อใดก็ตามที่เราสร้าง API เราจะส่งการตอบกลับใน JSON พร้อมรหัสสถานะเสมอ

มันทำงานอย่างไร 4

สำหรับ API เราสร้างโทเค็นการตรวจสอบสิทธิ์เสมอ หมายความว่าหากมีการสร้างและยืนยันโทเค็น เราก็สามารถตรวจสอบสิทธิ์ผู้ใช้ได้

<?php

เนมสเปซ App\Http\Controllers\API;

ใช้ Illuminate\Http\Request;

ใช้ App\Http\Controllers\API\BaseController เป็น BaseController;

ใช้ Illuminate\Support\Facades\Auth;

ใช้ตัวตรวจสอบความถูกต้อง;

ใช้ App\Models\User;

คลาส AuthController ขยาย BaseController

{

ลงชื่อเข้าใช้งานสาธารณะ (Request $request)

{

if(Auth::attempt(['email' => $request->email, 'password' => $request->รหัสผ่าน])){

$authUser = รับรองความถูกต้อง::ผู้ใช้();

$success['token'] = $authUser->createToken('MyAuthApp')->plainTextToken;

$success['name'] = $authUser->ชื่อ;

return $this->sendResponse($success, 'ผู้ใช้ลงชื่อเข้าใช้');

}

อื่น{

คืนค่า $this->sendError('Unauthorized.', ['error'=>'Unauthorized']);

}

}

การลงทะเบียนฟังก์ชั่นสาธารณะ (Request $request)

{

$validator = Validator::make($request->all(), [

'name' => 'จำเป็น',

'email' => 'จำเป็น|อีเมล',

'รหัสผ่าน' => 'จำเป็น',

'confirm_password' => 'required|same:password',

]);

if($ validator->fails()){

คืนค่า $this->sendError('Error validation', $validator->errors());

}

$input = $request->all();

$input['password'] = bcrypt($input['password']); $input['รหัสผ่าน'] = bcrypt($input['password']);

$user = ผู้ใช้::create($input);

$success['token'] = $user->createToken('MyAuthApp')->plainTextToken; $success['token'] = $user->createToken('MyAuthApp')->ข้อความธรรมดา

$success['name'] = $user->ชื่อ;

return $this->sendResponse($success, 'ผู้ใช้สร้างสำเร็จ');

}

}

ไฟล์เส้นทางนี้:

มันทำงานอย่างไร 5 สุดท้าย ในการรันโปรเจ็กต์ เราต้องรันคำสั่งนี้:

php artisan เสิร์ฟ

ห่อ

API ขับเคลื่อนเว็บไซต์และบริการยอดนิยมมากมายในปัจจุบัน ตั้งแต่เครือข่ายโซเชียลไปจนถึงแอปทางการเงิน ในบล็อกนี้ คุณรู้จัก REST API ใน Laravel เราหวังว่าสิ่งนี้จะปูพื้นฐานให้คุณเข้าใจว่า REST API คืออะไรและทำงานอย่างไร

หากคุณกำลังมองหาบริการพัฒนาเว็บไซต์ คุณไม่จำเป็นต้องมองหาอะไรเพิ่มเติม ที่ webdew คุณจะสามารถหาทีมนักออกแบบเว็บไซต์และนักพัฒนาที่มีทักษะเชิงรุกเพื่อออกแบบและสร้างเว็บไซต์ธุรกิจของคุณ ติดต่อเราเพื่อทราบข้อมูลเพิ่มเติม