How Can Setup Microservices-in-laravel

Microservice

Microservice is a collection of freely deployable services. It is an approach to building application software as a collection of independently deployable, compact, modular services. Herein, each service executes a different operation and interacts with one another via a simple, well-defined interface API.

Why do we need Microservice ?

The 3 prime reasons that modern enterprises need microservice architecture are:
● To defend against a failure of traffic or performance surge.
● To scale graciously
● To reduce the number of individuals engaging in each codebase.

How Can Setup Microservices ?

https://www.scmgalaxy.com/tutorials/how-to-create-new-microservices-in-laravel-framework/

First project

Step-1 Install Project

Step-2 Go to In project

Step-3 composer require laravel/passport

—— composer require laravel/passport=~7.5.0 (For Laravel version 5.8)

Step-4
config/app.php in providers

Laravel\Passport\PassportServiceProvider::class,

Step-5
Set database from .env file
php artisan migrate

composer require lcobucci/jwt=3.3.3

==============================================

Step-6
First open “App\User”

replace from User extents –

in top – use Laravel\Passport\HasApiTokens;

use Illuminate\Notifications\Notifiable;

class User extends Authenticatable
{
use HasApiTokens, Notifiable;

}

Step-8
app/providers/AuthServiceProvider.php

In top – use Laravel\Passport\Passport;

in function boot()- Passport::routes();

Step-9
config/auth.php of api’drivers (Token will be replace)

‘driver’ => ‘passport’,

Step-10
Route/api.php

Route::get(‘/file_name’, ‘FileController@index’);

If Require then———————

install guzzle pakages-

    composer require guzzlehttp/guzzle~6.5.0 

If Require then————

app/Http/Kernel.php

‘client_credentials’ => \Laravel\Passport\Http\Middleware\CheckClientCredentials::class,

====================================================================================================================================

Second Project=====

Step-1 Install Project

Step-2 Go to In project

Step-3 composer require laravel/passport

—— composer require laravel/passport=~7.5.0 (For Laravel version 5.8)

Step-4
config/app.php in providers

Laravel\Passport\PassportServiceProvider::class,

Step-5
set database from .env file

php artisan migrate

composer require lcobucci/jwt=3.3.3

Step-6
php artisan passport:install

    and set client_credentials in first project
    --------------------------------------------

==============================================

Step-7
First open “App\User”

replace from User extents –

in top – use Laravel\Passport\HasApiTokens;

use Illuminate\Notifications\Notifiable;

class User extends Authenticatable
{
use HasApiTokens, Notifiable;

}

Step-8
app/providers/AuthServiceProvider.php

In top – use Laravel\Passport\Passport;

in function boot()- Passport::routes();

Step-9
config/auth.php of api’drivers (Token will be replace)

‘driver’ => ‘passport’,

Step-10
Route/api.php

Route::get(‘/file_name’,’FileController@index’);

If Require then———————

install guzzle pakages-

    composer require guzzlehttp/guzzle~6.5.0 

If Require then————

app/Http/Kernel.php

‘client_credentials’ => \Laravel\Passport\Http\Middleware\CheckClientCredentials::class,

==========================================================================================

when we create microservice we must do one thing,that env name app.php shold be same
for Example-

in env

ADD_STUDENT_DATA_URL=/api/add_studentDetails

in app.php

‘ADD_STUDENT_DATA_URL’ => env(‘ADD_STUDENT_DATA_URL’, ‘not found in .env file’),

===================================================================================================
==================================================================================================

In Client Microservice

============================================

Add Microservice Controller

class MicroserviceController extends Controller
{


private static function getCategoryAccessToken() {
    Log::info('In MicroserviceController ->getCategoryAccessToken()');
    try {
        Log::info('CRUD_M_BASE_URL:'. Config::get('app.CRUD_M_BASE_URL'));
        Log::info('CRUD_M_GRANT_TYPE: ' . Config::get('app.CRUD_M_GRANT_TYPE'));
        Log::info('CRUD_M_OAUTH_TOKEN_URL: ' . Config::get('app.CRUD_M_OAUTH_TOKEN_URL'));
        Log::info('CRUD_M_CLIENT_SECRET: ' . Config::get('app.CRUD_M_CLIENT_SECRET'));
        Log::info('Getting the token!');
        $http = new Client(); //GuzzleHttp\Client
        Log::info('after client the token!');
        Log::info('before  post client the token!');
        $response = $http->post(
            'http://ajaxwithjquery/crud_in_ajax/oauth/token',
            [
                'form_params' => [
                    'grant_type' => Config::get('app.CRUD_M_GRANT_TYPE'),
                    'client_id' => Config::get('app.CRUD_M_CLIENT_ID'),
                    'client_secret' => Config::get('app.CRUD_M_CLIENT_SECRET'),
                    'redirect_uri' => '',
                ],
            ]
        );
        Log::info('after  post client the token!');
        $array = $response->getBody()->getContents();
        $json = json_decode($array, true);
        $collection = collect($json);
        $access_token = $collection->get('access_token');
        Log::info('Got the token!');
        return $access_token;
    } catch (RequestException $e) {
        Log::info('There is some exception in MicroserviceController ->getCategoryAccessToken()');
        return $e->getResponse()->getStatusCode() . ': ' . $e->getMessage();
    }
}

Related Posts

Advanced Certified MLOps Professional Program for Scalable AI Model Deployment Systems

Introduction The Certified MLOps Professional program from AIOpsSchool has emerged as a vital benchmark for engineers looking to bridge the gap between data science and production engineering….

Read More

Powerful Certified MLOps Engineer Program to Build Reliable ML Infrastructure

Introduction The integration of Machine Learning into production environments has created a significant gap between data science and traditional software engineering. The Certified MLOps Engineer program is…

Read More

Professional Skill Alignment Around MLOps Foundation Certification in Modern Workplaces

Introduction The MLOps Foundation Certification has emerged as a critical benchmark for professionals looking to bridge the gap between data science and production engineering. This guide is…

Read More

Certified AIOps Manager: Strategic Framework for Intelligent IT Operations

Introduction The Certified AIOps Manager program is a specialized training designed to help professionals lead the next wave of IT operations. This guide is for engineers and…

Read More

Advanced AIOps Architect Certification Roadmap for DevOps Engineers

Introduction The Certified AIOps Architect is a comprehensive professional program designed for engineers and architects who want to master the intersection of Artificial Intelligence and IT Operations….

Read More

Advanced Certified AIOps Professional Guide for Mastering AI Driven Operations Skills

Introduction Artificial Intelligence for IT Operations is the future of managing complex systems and large scale digital environments. The Certified AIOps Professional program is designed for those…

Read More