Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Laravel REST API connecting Node.js


Laravel REST API connecting Node.js


To connect a Laravel REST API with a Node.js application, you can use the following methods:

Method 1: Using Laravel's Built-in REST API

1. Create Routes:
- In Laravel, define routes for your API endpoints using the `routes/api.php` file. For example:

php
     use App\Http\Controllers\YourController;

     Route::get('/items', [YourController::class, 'index']);
     Route::get('/items/{id}', [YourController::class, 'show']);
     Route::post('/items', [YourController::class, 'store']);
     Route::put('/items/{id}', [YourController::class, 'update']);
     Route::delete('/items/{id}', [YourController::class, 'destroy']);
     

2. Create Controller and Model:
- Generate a controller and corresponding model to handle API logic and interact with the database. For example:

php
     namespace App\Http\Controllers;

     use App\Models\Item;
     use Illuminate\Http\Request;

     class YourController extends Controller
     {
         public function index()
         {
             $items = Item::all();
             return response()->json($items);
         }

         public function show($id)
         {
             $item = Item::find($id);
             return response()->json($item);
         }

         public function store(Request $request)
         {
             $item = Item::create($request->all());
             return response()->json($item, 201);
         }

         public function update(Request $request, $id)
         {
             $item = Item::find($id);
             $item->update($request->all());
             return response()->json($item, 200);
         }

         public function destroy($id)
         {
             Item::destroy($id);
             return response()->json(null, 204);
         }
     }
     

3. Database Setup:
- Ensure your database connection is configured correctly in the `.env` file. Run the migrations to create the required table.

4. Testing Endpoints:
- Use tools like Postman or cURL to test your API endpoints by sending various HTTP requests (GET, POST, PUT, DELETE) to interact with the data.

Method 2: Using Node.js to Consume Laravel API

1. Create Node.js API:
- Create a Node.js API using Express.js or another framework. For example:

javascript
     const express = require('express');
     const app = express();

     app.use(express.json());

     app.get('/items', async (req, res) => {
         const response = await fetch('https://localhost00/api/items');
         const data = await response.json();
         res.json(data);
     });

     app.post('/items', async (req, res) => {
         const response = await fetch('https://localhost00/api/items', {
             method: 'POST',
             headers: {
                 'Content-Type': 'application/json',
             },
             body: JSON.stringify(req.body),
         });
         const data = await response.json();
         res.json(data);
     });

     app.listen(3000, () => {
         console.log('Server started on port 3000');
     });
     

2. Consuming Laravel API:
- Use the Node.js API to consume the Laravel API endpoints. For example, to fetch all items:

javascript
     fetch('https://localhost00/api/items')
       .then(response => response.json())
       .then(data => console.log(data));
     

Conclusion

By following these methods, you can effectively connect a Laravel REST API with a Node.js application. This integration allows you to leverage the strengths of both platforms, enabling seamless communication and data exchange between different systems.

Citations:
[1] https://www.reddit.com/r/webdev/comments/11955zn/laravel_or_nodejs_expressjs_for_restful_api/
[2] https://stackoverflow.com/questions/48235260/node-js-access-to-api-laravel
[3] https://laracasts.com/discuss/channels/laravel/node-js-api-with-laravel
[4] https://www.toptal.com/nodejs/secure-rest-api-in-nodejs
[5] https://dev.to/rohitsondigala/creating-a-restful-api-in-laravel-a-comprehensive-guide-27oi