tejariapp-new-logotejariapp-new-logotejariapp-new-logotejariapp-new-logo
  • صفحه اصلی
  • پروژه ها
    • پروژه طراحی سایت
    • پروژه های اندروید
    • پروژه های تحت ویندوز
    • UI & UX
    • ربات تلگرام
  • سفارش پروژه
    • انجام پروژه اندروید (Android)
    • طراحی و ساخت اپلیکیشن موبایل
    • انجام پروژه طراحی سایت با php
    • انجام پروژه طراحی سایت با Asp.net
    • انجام پروژه سی شارپ
    • فرم سفارش پروژه
  • مدرسه ی تجاری اپ
    • طراحی سایت
    • اندروید
    • سی شارپ
    • آموزش پایگاه داده
    • برنامه های کاربردی
  • لینک های مفید
    • پرداخت آنلاین
    • درباره تجاری اپ
    • تماس با ما
استخدام برنامه نویس متلب
سفارش پروژه
✕
            هیچ نتیجه ای یافت نشدمشاهده همه نتایج

            ساخت RESTful API برای عملیات CRUD در لاراول به همراه احراز هویت با استفاده از Passport

            • صفحه نخست
            • مدرسه ی تجاری اپ آموزش طراحی سایت
            • ساخت RESTful API برای عملیات CRUD در لاراول به همراه احراز هویت با استفاده از Passport
            آموزش زمانبندی وظایف با WorkManager در اندروید
            آموزش زمانبندی وظایف با WorkManager در اندروید
            16 فروردین 1398
            اعتبارسنجی فرم ثبت نام با ajax در لاراول 5.8
            اعتبارسنجی فرم ثبت نام با ajax در لاراول 5.8
            23 فروردین 1398
            منتشر شده توسط مدیر سایت
            ساخت RESTful API در لاراول با Passport

            ساخت RESTful API در لاراول با Passport

            در این آموزش ما قصد داریم به شما نحوه ی ساخت RESTful API در لاراول به همراه احراز هویت با استفاده از پکیج passport را آموزش دهیم.ما قصد داریم برای ساخت RESTful API از API resources لاراول استفاده کنیم.در این مقاله ما به عنوان مثال API ، ثبت نام ، ورود ، عملیات CRUD محصول کتاب را ایجاد می کنیم.

            سرفصل های آموزش ساخت RESTful API در لاراول با Passport

            1. نصب لاراول و پیکربندی اولیه
            2. نصب پکیج Passport
            3. Migrate و نصب Passport
            4. پیکربندی Passport
            5. ایجاد جدول Book
            6. ایجاد مدل و کنترلر
            7. ایجاد مسیرهای API
            8. صدا زدن API با استفاده از Postman

            گام 1 : نصب لاراول و پیکربندی اولیه

            برای هر پروژه لاراول ما نیاز داریم که لاراول را نصب کنیم. به همین دلیل ما یک مقاله در رابطه با چگونگی نصب و پیکربندی اولیه لاراول آماده کرده ایم که می توانید از اینجا ان را مشاهده نمایید : آموزش نصب لاراول به همراه تنظیمات اولیه

            گام 2 : نصب پکیج Passport

            composer require laravel/passport
            

            ما باید PassportServiceProvider را به فایل app.php اضافه کنیم. فایل  مذکور را از مسیر config / app.php را باز کنید و خط زیر را به آن اضافه کنید:

            'providers' =>[
                Laravel\Passport\PassportServiceProvider::class,
            ],
            

            گام 3 : Migrate و نصب Passport

            در اینجا ما نیاز داریم که دستور migration را اجرا کنیم.بعد از اجرای دستور migration چندین جدول برای ما ساخته می شود که می توانید انها را در دیتابیس پروژه خود مشاهده نمایید :

            php artisan migrate
            

            بعد از اجرای دستور migration ما برای نصب Passport باید دستور زیر را اجرا کنیم:

            php artisan passport:install
            

            گام 4 : پیکربندی Passport

            در ادامه ما باید سه فایل User.php ، AuthServiceProvider.php  و auth.php  را پیکربندی کنیم . فایل User.php  را از مسیر app/User.php  باز کنید و کدهای زیر را در آن وارد کنید:

            <?php
              
            namespace App;
              
            use Illuminate\Notifications\Notifiable;
            use Illuminate\Contracts\Auth\MustVerifyEmail;
            use Laravel\Passport\HasApiTokens;
            use Illuminate\Foundation\Auth\User as Authenticatable;
              
            class User extends Authenticatable implements MustVerifyEmail
            {
                use HasApiTokens, Notifiable;
              
                /**
                 * The attributes that are mass assignable.
                 *
                 * @var array
                 */
                protected $fillable = [
                    'name', 'email', 'password',
                ];
              
                /**
                 * The attributes that should be hidden for arrays.
                 *
                 * @var array
                 */
                protected $hidden = [
                    'password', 'remember_token',
                ];
            }
            

            app/Providers/AuthServiceProvider.php را ویرایش کنید و کدهای زبر را در آن بنویسید:

            <?php
            
            namespace App\Providers;
            
            use Laravel\Passport\Passport;
            use Illuminate\Support\Facades\Gate;
            use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
            
            class AuthServiceProvider extends ServiceProvider
            {
                /**
                 * The policy mappings for the application.
                 *
                 * @var array
                 */
                protected $policies = [
                    'App\Model' => 'App\Policies\ModelPolicy',
                ];
            
            
                /**
                 * Register any authentication / authorization services.
                 *
                 * @return void
                 */
                public function boot()
                {
                    $this->registerPolicies();
            
            
                    Passport::routes();
                }
            }
            
            

            همچنین فایل config/auth.php را باز کنید و کدهای زیر را در آن وار کنید:

            'guards' => [ 
                    'web' => [ 
                        'driver' => 'session', 
                        'provider' => 'users', 
                    ], 
                    'api' => [ 
                        'driver' => 'passport', 
                        'provider' => 'users', 
                    ], 
                ],
            

            گام 5 : ایجاد جدول Book

            با اجرای دستور زیر جدول books را ایجاد کنید:

            php artisan make:migration create_books_table
            

            به پوشه database/migrations بروید و فایل migration که اخیرا ایجاد کردید را پیدا کنید و کدهای زیر را در آن وارد کنید:

            <?php
            
            use Illuminate\Support\Facades\Schema;
            use Illuminate\Database\Schema\Blueprint;
            use Illuminate\Database\Migrations\Migration;
            
            class CreateBooksTable extends Migration
            {
                /**
                 * Run the migrations.
                 *
                 * @return void
                 */
                public function up()
                {
                    Schema::create('books', function (Blueprint $table) {
                        $table->increments('id');
                        $table->string('name');
                        $table->text('author');
                        $table->timestamps();
                    });
                }
            
                /**
                 * Reverse the migrations.
                 *
                 * @return void
                 */
                public function down()
                {
                    Schema::dropIfExists('books');
                }
            }
            
            

            اکنون دستور زیر را برای migrate کردن ایجاد کنید:

            php artisan migrate
            

            گام 6 : ایجاد مدل و کنترلر

            ما قصد داریم یک مدل و دو کنترلر برای این پروژه ایجاد کنیم. ابتدا دستور زیر را برای ایجاد مدل Book اجرا کنید:

            php artisan make:model Book
            

            مدل Book را از مسیر app/Book.php  باز کنید و کدهای زیر را در آن بنویسید:

            <?php
            
            namespace App;
            
            use Illuminate\Database\Eloquent\Model;
            
            class Book extends Model
            {
                /**
                 * The attributes that are mass assignable.
                 *
                 * @var array
                 */
                protected $fillable = [
                    'name', 'author'
                ];
            }
            

            در ادامه با اجرای دستور زیر کنترلر BookController را در پوشه API ایجاد کنید:

            php artisan make:controller API/BookController
            

            کدهای زیر را در کنترلرBookController وارد کنید:

            <?php
            
            namespace App\Http\Controllers\API;
            
            use Illuminate\Http\Request;
            use App\Http\Controllers\Controller;
            use App\Book;
            use Validator;
            
            class BookController extends Controller
            {
                /**
                 * Display a listing of the resource.
                 *
                 * @return \Illuminate\Http\Response
                 */
                public function index()
                {
                    $books = Book::all();
                    $data = $books->toArray();
            
                    $response = [
                        'success' => true,
                        'data' => $data,
                        'message' => 'Books retrieved successfully.'
                    ];
            
                    return response()->json($response, 200);
                }
            
            
                /**
                 * 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, [
                        'name' => 'required',
                        'author' => 'required'
                    ]);
            
                    if ($validator->fails()) {
                        $response = [
                            'success' => false,
                            'data' => 'Validation Error.',
                            'message' => $validator->errors()
                        ];
                        return response()->json($response, 404);
                    }
            
                    $book = Book::create($input);
                    $data = $book->toArray();
            
                    $response = [
                        'success' => true,
                        'data' => $data,
                        'message' => 'Book stored successfully.'
                    ];
            
                    return response()->json($response, 200);
                }
            
            
                /**
                 * Display the specified resource.
                 *
                 * @param  int $id
                 * @return \Illuminate\Http\Response
                 */
                public function show($id)
                {
                    $book = Book::find($id);
                    $data = $book->toArray();
            
                    if (is_null($book)) {
                        $response = [
                            'success' => false,
                            'data' => 'Empty',
                            'message' => 'Book not found.'
                        ];
                        return response()->json($response, 404);
                    }
            
            
                    $response = [
                        'success' => true,
                        'data' => $data,
                        'message' => 'Book retrieved successfully.'
                    ];
            
                    return response()->json($response, 200);
                }
            
            
                /**
                 * Update the specified resource in storage.
                 *
                 * @param  \Illuminate\Http\Request $request
                 * @param  int $id
                 * @return \Illuminate\Http\Response
                 */
                public function update(Request $request, Book $book)
                {
                    $input = $request->all();
            
                    $validator = Validator::make($input, [
                        'name' => 'required',
                        'author' => 'required'
                    ]);
            
                    if ($validator->fails()) {
                        $response = [
                            'success' => false,
                            'data' => 'Validation Error.',
                            'message' => $validator->errors()
                        ];
                        return response()->json($response, 404);
                    }
            
                    $book->name = $input['name'];
                    $book->author = $input['author'];
                    $book->save();
            
                    $data = $book->toArray();
            
                    $response = [
                        'success' => true,
                        'data' => $data,
                        'message' => 'Book updated successfully.'
                    ];
            
                    return response()->json($response, 200);
                }
            
            
                /**
                 * Remove the specified resource from storage.
                 *
                 * @param  int $id
                 * @return \Illuminate\Http\Response
                 */
                public function destroy(Book $book)
                {
                    $book->delete();
                    $data = $book->toArray();
            
                    $response = [
                        'success' => true,
                        'data' => $data,
                        'message' => 'Book deleted successfully.'
                    ];
            
                    return response()->json($response, 200);
                }
            }
            

            حالا کنترلر UserController را در پوشه API ایجاد کنید:

            php artisan make:controller API/UserController
            

            حالا کدهای زیر را در آن وارد کنید:

            <?php
            
            namespace App\Http\Controllers\API;
            
            use Illuminate\Http\Request;
            use App\Http\Controllers\Controller;
            use Illuminate\Support\Facades\Auth;
            use App\User;
            use Validator;
            
            class UserController extends Controller
            {
                /**
                 * Register api
                 *
                 * @return \Illuminate\Http\Response
                 */
                public function register(Request $request)
                {
                    $validator = Validator::make($request->all(), [
                        'name' => 'required',
                        'email' => 'required|email',
                        'password' => 'required',
                        'c_password' => 'required|same:password',
                    ]);
            
                    if ($validator->fails()) {
                        $response = [
                            'success' => false,
                            'data' => 'Validation Error.',
                            'message' => $validator->errors()
                        ];
                        return response()->json($response, 404);
                    }
            
                    $input = $request->all();
                    $input['password'] = bcrypt($input['password']);
                    $user = User::create($input);
                    $success['token'] = $user->createToken('MyApp')->accessToken;
                    $success['name'] = $user->name;
            
                    $response = [
                        'success' => true,
                        'data' => $success,
                        'message' => 'User register successfully.'
                    ];
            
                    return response()->json($response, 200);
                }
            
                /**
                 * Login api
                 *
                 * @return \Illuminate\Http\Response
                 */
                public function login()
                {
                    if (Auth::attempt(['email' => request('email'), 'password' => request('password')])) {
                        $user = Auth::user();
                        $success['token'] = $user->createToken('MyApp')->accessToken;
            
                        return response()->json(['success' => $success], 200);
                    } else {
                        return response()->json(['error' => 'Unauthorised'], 401);
                    }
                }
            }
            

            گام 7 : ایجاد مسیرهای API

            در این مرحله ما قصد داریم مسیرهای (Routes) API را ایجاد کنیم ، برای این منظور routes/api.php را باز کنید و کدهای زیر را در آن وارد کنید:

            <?php
            
            /*
            |--------------------------------------------------------------------------
            | API Routes
            |--------------------------------------------------------------------------
            |
            | Here is where you can register API routes for your application. These
            | routes are loaded by the RouteServiceProvider within a group which
            | is assigned the "api" middleware group. Enjoy building your API!
            |
            */
            
            Route::post('register', 'API\RegisterController@register');
            Route::post('login', 'API\UserController@login');
            
            Route::middleware('auth:api')->group( function () {
                Route::resource('books', 'API\BookController');
            });
            

            کدنویسی مربوط به این بخش به پایان رسید ، با اجرای دستور زیر برنامه خود را اجرا کنید:

            php artisan serve
            

            در حال حاضر برنامه در حال اجرا می باشد ، ما باید API ها را با استفاده از Postman صدا بزنیم.ما باید این جزئیات هدر را پاس بدیم یا منتقل کنیم :

            'headers' => [
            
                'Accept' => 'application/json',
            
                'Authorization' => 'Bearer '.$accessToken,
            
            ]
            

            گام 8 : صدا زدن API با استفاده از Postman

            برنامه postman را باز کنید و API ها را مانند زیر صدا بزنید.

            توجه: من یک دامنه سفارشی برای این پروژه ایجاد کرده ام. لینک API شما باید مانند http://localhost: 8000/api/ باشد. اگر می خواهید مانند من از یک دامنه سفارشی استفاده کنید، این مقاله را بخوانید: نحوه اضافه کردن دامنه سفارشی و نصب SSL بر روی لوکال هاست

            API مربوط به ثبت نام: Verb: POST ، URL: http://laravel_api.test/api/register

            ساخت RESTful API در لاراول
            ساخت RESTful API در لاراول – API مربوط به ثبت نام

            API مربوط به ورود: Verb: POST ، URL: http://laravel_api.test/api/login

            ساخت RESTful API در لاراول
            ساخت RESTful API در لاراول – API مربوط به ورود

            API مربوط به افزودن کتاب: Verb: POST ، URL: http://laravel_api.test/api/books

            ساخت RESTful API در لاراول
            ساخت RESTful API در لاراول – API مربوط به افزودن

            API مربوط به گرفتن همه کتاب ها: Verb: GET ، URL: http://laravel_api.test/api/books

            ساخت RESTful API در لاراول
            ساخت RESTful API در لاراول – مربوط به گرفتن همه

            API مربوط به نمایش یک کتاب: Verb: GET ، URL: http://laravel_api.test/api/books/1

            ساخت RESTful API در لاراول
            ساخت RESTful API در لاراول – API مربوط به نمایش

            API مربوط به بروزرسانی یک کتاب: Verb: PUT ، URL: http://laravel_api.test/api/books/1

            ساخت RESTful API در لاراول
            ساخت RESTful API در لاراول – API مربوط به بروزرسانی

            API مربوط به حذف یک کتاب: Verb: DELETE ، URL: http://laravel_api.test/api/books/1

            ساخت RESTful API در لاراول
            API مربوط به حذف

            امیدوارم این مقاله به شما کمک کرده باشد.

            اشتراک گذاری

            پست های مرتبط

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            30 بهمن 1400

            دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            30 بهمن 1400

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            توابع در زبان برنامه نویسی دارت (Dart)

            توابع در زبان برنامه نویسی دارت (Dart)

            27 بهمن 1400

            توابع در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب

            4 Comments

            1. مهدی صفری گفت:
              26 شهریور 1398 در 10:35

              عالی بود

              پاسخ
            2. علیرضا گفت:
              4 دی 1398 در 04:32

              بسیار عالی و با کیفیت کامل توضیح داده شده بود

              پاسخ
            3. مریم گفت:
              7 دی 1398 در 12:20

              خیلی عالی بود، به من که خیلی کمک کرد

              پاسخ
            4. مسلم گفت:
              16 تیر 1399 در 19:18

              متشکرم !

              مختصر و مفید بود 🙂

              پاسخ

            دیدگاهتان را بنویسید لغو پاسخ

            نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

            ساخت اپلیکیشن های موبایل

            • ساخت اپلیکیشن فروشگاهی
            • ساخت اپلیکشن ابزاری و خدماتی
            • ساخت اپلیکیشن آموزشی
            • و هزاران موضوع دیگر

             
            کلیک کنید

            آخرین دیدگاه ها

            • 7 خرداد 1401

              داودی نظر در آموزش استفاده از ckeditor همراه با آپلود عکس در لاراول 6

            • 6 فروردین 1401

              yasaman نظر در راست چین کردن متن در فیگما Figma

            • 3 فروردین 1401

              رضا نظر در مفاهیم Observable و Observer در RxJava

            تجاری اپ در شبکه های اجتماعی

            لوگوی تایید پرداخت آنلاین

            2015-2022 © تمامي حقوق مادي و معنوي اين وب سايت نزد تجاری اپ محفوظ بوده و هر گونه کپي برداري از مطالب پيگرد قانوني به همراه دارد! | طراح سایت : ProgRun
            سفارش پروژه
                      هیچ نتیجه ای یافت نشدمشاهده همه نتایج