Réalisation d'un API avec Laravel

Overview

Réalisation d'un API avec Laravel

1-creation du projet backend

 composer create-project --prefer-dist laravel/laravel Backend
 

2-Allez dans le fichier .env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=backend
DB_USERNAME=root
DB_PASSWORD=

Crrer la base de donnée backend sur phpmyadmin

Creation du model et du controller

Vous pouvez le faire de deux manieres:
La maniere Lumpeul

php artisan make:controller create_idees_tables 
php artisan make:model idees

Alors y a une maniere Epsilon de faire la meme chose de facon plus efficaces 😁 😁 😁 cette commande te permet de générer le model et le controller en meme temps

php artisan make:model idee -mc

Creations des champs de notre tables idees

Creer les champs dont vous avez besoin pour votre base de donnée pour notre cas on besoin de(libelle,description,message)
public function up()
    {
        Schema::create('idees', function (Blueprint $table) {
            $table->id();
            $table->string('libelle');
            $table->string('description');
            $table->string('message');
            $table->timestamps();
        });
    }

Migrations des champs sur phpmyadmin

php artisan migrate

# ouvrez le fichier IdeeController.php


namespace App\Http\Controllers;

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

class IdeeController extends Controller
{
    public function index()
    {
        return idee::All();
    }
}

Parametrer les routes d' acces a l ' API

use App\Http\Controllers\IdeeController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::get('/idee', [IdeeController::class, 'index']);

Testons si notre api marche a merveille

Tout d abord ajoutons des entrées dans notre base de données

Testons si les urls de notre Api marche >>> http://127.0.0.1:8000/api/idee

Essayons de Creer notre Fontend avec le framework React afin de recuperer les donnees de notre API

npx create-react-app EpsilonFront
cd EpsilonFront
npm start

De nombreux projets sur le web doivent s’interfacer avec une API REST à un certain stade de leur développement. Axios est un client HTTP léger basé sur le service $http et est similaire à l’API native JavaScript Fetch. Axios est basé sur Promise, ce qui vous permet de profiter des avantages d’async de JavaScript et await pour un code asynchrone plus lisible.

installons axios

npm install axios

Ouvrez le ficher App.js

Recuperer les données de notre API

{ async function Ajouter() { try { const epsilon = await axios.get("http://127.0.0.1:8000/api/idee") console.log(epsilon.data) setIdees(epsilon.data) } catch (error) { console.log(error) } } Ajouter() }, []) return (

Je suis sur react afin de recuperer les données de mon API

{ idees.map((idee, i) => { return (

{idee.message}

) }) }
); } export default App; ">
import './App.css';
import { useState, useEffect } from "react";
import axios from "axios";
function App() {
  const [idees, setIdees,] = useState([])

  useEffect(() => {
    async function Ajouter() {
      try {
        const epsilon = await axios.get("http://127.0.0.1:8000/api/idee")
        console.log(epsilon.data)
        setIdees(epsilon.data)
      } catch (error) {
        console.log(error)
      }

    }
    Ajouter()

  }, [])
  return (
    <div className="App">
      <h1>Je suis sur react afin de recuperer les données de mon API</h1>
      {
        idees.map((idee, i) => {
          return (
            <h4 key={i}>{idee.message}</h4>
          )
        })
      }
    </div>
  );
}

export default App;

Verifions si on parvient a recuperer les messages a partir de notre API Laravel

😒 Etes vous d'accord que pour l instant vous pouvez que faire l affichage des données de l api.

Ne serait t'il pas interessant de pouvoir ajouter des informations , modifier ou meme de supprimer des informations.

🤦‍♀️ 🤦‍♀️ 🤦‍♀️ On fait comment ?

Pas de panique c est tres simple faut tout juste revenir sur ton application laravel ensuite specifier des routes et des methodes afin de permettre de permettre a l api de d accepter des requettes post,put,delete.

Ouvrez le model => idee.php

ajouter => protected $fillable = [ "libelle", "description", "message", ];

C'est pour spécifier les champs de notre base de donnée.



namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class idee extends Model
{
    use HasFactory;
    protected $fillable = [
        "libelle",
        "description",
        "message",
    ];
}

Rendez vous dans votre controlleur pour ajouter une methode post a votre controlleur. La methode d'ajout

 public function store(Request $request)
    {
        return idee::create($request->all());
    }


namespace App\Http\Controllers;

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

class IdeeController extends Controller
{
    public function index()
    {
        return idee::All();
    }

    public function store(Request $request)
    {
        return idee::create($request->all());
    }
}

Testons maintenant avec Postman si nous pouvons poster de nouveau donnée

Regardons si les données sont bien enregistré dans la base .

You might also like...
A simple API documentation package for Laravel using OpenAPI and Stoplight Elements

Laravel Stoplight Elements Easily publish your API documentation using your OpenAPI document in your Laravel Application. Installation You can install

REST API with auth using Laravel 8 and Sanctum

Laravel REST API with Sanctum This is an example of a REST API using auth tokens with Laravel Sanctum Usage Change the .env.example to .env and add yo

Laravel API wrapper to interact fluently with your Janus Media Server

Laravel API wrapper to interact fluently with your Janus Media Server. Core server interactions, as well as the video room plugin included.

Lightweight JSON:API resource for Laravel

JSON:API Resource for Laravel A lightweight Laravel implementation of JSON:API. This is a WIP project currently being built out via livestream on my Y

A simple package allowing for consistent API responses throughout your Laravel application
A simple package allowing for consistent API responses throughout your Laravel application

Laravel API Response Helpers A simple package allowing for consistent API responses throughout your Laravel application. Requirements PHP ^7.4 | ^8.0

Package to easily test crudable controllers for Laravel based API

Laravel Crudable Test This package is very usefull to easily test crudable controllers. Installation You can install package via composer. Add reposit

Auto Generate laravel api Documentation
Auto Generate laravel api Documentation

Laravel Dark Documentation Generator 💥 You can create Documentation for your api easily by using this library Installation: Require this package with

JSON-RPC 2.0 API server for @Laravel framework
JSON-RPC 2.0 API server for @Laravel framework

Sajya is an open-source project aiming to implement the JSON-RPC 2.0 server specification for the Laravel quickly.

Open Food Facts API wrapper for Laravel

Laravel Open Food Facts API This package provides a convenient wrapper to the Open Food Facts API for Laravel applications (5.7+). Installation You ca

Owner
Epsilon
Codeur passioné de code
Epsilon
Laravel Package for TMDB ( The Movie Database ) API. Provides easy access to the wtfzdotnet/php-tmdb-api library.

Laravel Package for TMDB API Wrapper A Laravel package that provides easy access to the php-tmdb/api TMDB (The Movie Database) API wrapper. This packa

PHP - The Movie Database 151 Nov 1, 2022
The fastest way to make a powerful JSON:API compatible Rest API with Laravel.

The first fully customizable Laravel JSON:API builder. "CRUD" and protect your resources with 0 (zero) extra line of code. Installation You can instal

BinarCode 288 Aug 8, 2022
Lumen rest api demo with Dingo/Api, JWT, CORS, PHPUNIT

lumen-api-demo 这是一个比较完整用 lumen 5.7 写的的 REST API 例子。使用了 dingo/api ,jwt 实现登录,功能上很简单,登录,注册,发帖,评论,单元测试(正在补充)。 lumen5.x 请看对应的分支 有需要随时联系我 lumen/laravel/rest

Yu Li 859 Oct 25, 2022
List of 77 languages for Laravel Framework 4, 5, 6, 7 and 8, Laravel Jetstream , Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel Spark.

Laravel Lang In this repository, you can find the lang files for the Laravel Framework 4/5/6/7/8, Laravel Jetstream , Laravel Fortify, Laravel Cashier

Laravel Lang 6.9k Jan 2, 2023
Laravel Backend API for the tutorial (Granular permissions with Laravel APIs & React frontend)

Laravel Granular Permissions Backend Getting Started Clone the repository. Install the dependencies composer install Update .env database credentials

Munaf Aqeel Mahdi 4 May 10, 2022
Mollie API client wrapper for Laravel & Mollie Connect provider for Laravel Socialite

Mollie for Laravel Laravel-Mollie incorporates the Mollie API and Mollie Connect into your Laravel or Lumen project. Accepting iDEAL, Apple Pay, Banco

Mollie 289 Nov 24, 2022
Laravel Responder - a package for building API responses, integrating Fractal into Laravel and Lumen

A Laravel Fractal package for building API responses, giving you the power of Fractal with Laravel's elegancy.

Alexander Tømmerås 776 Dec 25, 2022
jQuery DataTables API for Laravel 4|5|6|7|8

jQuery DataTables API for Laravel 4|5|6|7|8 This package is created to handle server-side works of DataTables jQuery Plugin via AJAX option by using E

Arjay Angeles 4.5k Jan 9, 2023
Laravel package to use the notion API

Package to work with Notion API from Laravel This package helps you to use the notion API from Laravel. Installation You can install the package via c

64 Robots 11 Jun 6, 2021
Laravel wrapper package for the Aimon.it API

Laravel Aimon Package A laravel wrapper package for the Aimon.it API. For more information see Aimon Requirements Laravel 6 or later Installation Inst

Ruslan 3 Aug 7, 2022