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

MyEventsNow USA: A Complete Guide for Attendees and Organizers

Maya opened her laptop on a Tuesday night. She wanted to plan a fun weekend for her friends. One friend wanted live music. Another wanted comedy. A…

Read More

How DataOps Improves Decision Making in Enterprises

Enterprise decision-making rarely fails because leaders lack data. It fails because the data they receive arrives too late, lacks context, or cannot be trusted. A sales report…

Read More

Manufacturing Analytics Optimization with DataOps

Manufacturing plants generate more data than ever—historian tags, MES records, PLC signals, quality measurements—yet most of it never reaches a decision that improves the line. The gap…

Read More

How TheDataOps.org Guides Automation in Analytics Teams

Analytics teams often face a stubborn paradox: the more data they manage, the less time they spend on analysis that actually matters. Manual checks, repeated report rebuilding,…

Read More

Discovering Festivals, Concerts, and Workshops in Japan

Priya landed in Tokyo on a Friday with no plans. A friend back home had told her about a weekend music night in Osaka. She opened her…

Read More

Exploring Concerts, Festivals, and Entertainment Across Major UK Cities

It’s Friday evening in Glasgow. You and your mates want a laugh, but nobody can agree where to go. One fancies a comedy show. Someone else brings…

Read More