Maison  >  Article  >  cadre php  >  Laravel vous apprend à écrire simplement une RestfulAPI professionnelle

Laravel vous apprend à écrire simplement une RestfulAPI professionnelle

藏色散人
藏色散人avant
2020-10-27 13:45:462631parcourir

Laravel vous apprend à rédiger facilement des URL professionnelles

Introduction

Après nous être connectés à la base de données et utilisé la fonction de migration pour créer la structure de la table de la base de données, a utilisé Seeder pour remplir initialement des données factices pour la base de données. Une fois ces préparatifs en place, nous pouvons envisager de créer une fonction d'interface de ressources pour fournir un support de données externes.

Temps de codage

Pensez-vous que l'interface API et les données que vous avez conçues sont différentes des autres grands fabricants ? La structure des données du document fournie est différente, n'a pas l'air si professionnelle, ou pas si standard ? De combien de notes sommes-nous encore en retard sur Dachang ? Laravel fournit un moyen simple et standard qui nous permet de suivre les meilleures pratiques pour rédiger des URL professionnelles.

Par exemple, pour les ressources, utilisez le style restful pour déclarer l'adresse de routage de l'url :

La première colonne est la méthode de requête http, et la deuxième colonne est la déclaration dans les règles de routage laravel, la troisième colonne est la méthode du contrôleur correspondante. La liste de ressources ci-dessus couvre toutes les actions d'ajout, de suppression, de modification et de vérification, ce qui peut être considéré comme très complet.

Comment générer rapidement la méthode de contrôleur ci-dessus ? Utilisez les instructions d'échafaudage Laravel pour exécuter sur la ligne de commande :

php artisan make:controller EventsController --resource
Nous utilisons l'option –resource

pour générer toutes les méthodes ci-dessus dans le contrôleur cible.

Le fichier généré se trouve dans

app/Http/Controllers/EventsController.php

Le contenu d'initialisation est le suivant :

. Ces méthodes fonctionnent vraiment dès la sortie de la boîte.

Alors, devons-nous encore déclarer manuellement les entrées de routage ci-dessus une par une ? Quel cauchemar. Heureusement, laravel l'a fait pour nous, utilisez simplement la méthode

resource de la classe

Route

pour enregistrer les ressources :

Route::resource('events', 'EventsController');

utilise la méthode de routage des ressources, spécifiez simplement Route nom et la méthode de contrôleur correspondante, vous n'avez pas besoin d'écrire fastidieusement ces routes et ces méthodes de contrôleur. Pour faciliter l'affichage, nous restituons les données dans le fichier de vue. Créons d'abord le fichier de vue resources/views/events/index.blade.php, utilisons le fichier de mise en page par défaut et remplissons. dans le code suivant :

@extends('layouts.app')
@section('content')
    <h1>Events</h1>
@endsection

Ouvrez le fichier

app/Http/Controllers/EventsController

et modifiez la méthode index :

public function index(){
    return view('events.index');}

Comme vous pouvez voyez, il n'y a pas de base de données dans la méthode ci-dessus. Pour l'interaction des données, nous introduisons le modèle ci-dessous et le rendons dans la vue. Ajoutez la référence suivante en haut du contrôleur :

use App\Event;
Remplissez le code suivant à l'intérieur de la méthode index :

$events = Event::all();return view('events.index')->with('events', $events);

Avec les données ci-dessus, parcourez simplement le afficher le contenu dans la vue, modifiez le fichier de vue comme suit :

<h1>Events</h1>
        @forelse ($events as $event)         
  • {{ $event->name }}
  •     @empty        
  • No events found!
  •     @endforelse

Dans le fichier modèle, la méthode @forelse déterminera si la variable

$events

a au au moins un élément pour le parcours, et sinon, afficher

@empty

Le contenu du bloc. Accédez à l'adresse de routage dans le navigateur et le contenu de sortie ressemble à peu près à celui indiqué ci-dessous. Parce que les fausses données renseignées par Faker sont utilisées, cela ressemble à ceci : Si la quantité de données est trop importante, cette page sera probablement c'est long à charger, la liste est longue. Une pagination est donc nécessaire. Pour ajouter la fonction de pagination, l'instruction SQL utilisée ressemble probablement à ceci :

select id, name from events order by id asc limit 10 offset 0;
select id, name from events order by id asc limit 10 offset 10;
Pour utiliser la fonction de pagination dans le contrôleur, appelez simplement la méthode

paginate sur le modèle :

$events = Events::paginate(10);

chacun La page est définie sur 10 éléments. Nous devons avoir une barre de navigation pour la page précédente, la page suivante et le numéro de page dans la vue, et nous n'avons pas besoin de l'écrire manuellement. Laravel hérite en fait de la classe

IlluminatePaginationLengthAwarePaginator

renvoyée par la méthode paginate Il suffit d'ajouter simplement cette ligne à la vue :

{!! $events->links() !!}

La barre de navigation générée est la suivante. :

Écrit à la fin

Cet article présente brièvement la méthode utilisée pour remplir la base de données laravel, on peut la remplir manuellement ,

Vous pouvez également utiliser une bibliothèque tierce pour remplir des données factices, ce qui améliore considérablement l'efficacité. Ce n'est que lorsque les données sont préparées que l'on peut

parler de logique métier et d'amarrage d'interface. Ces données constituent également la base de la candidature, elles sont donc importantes.

Cet article est un complément à la fonction de migration de base de données Laravel décrite dans le chapitre précédent. La migration de bases de données est une démarche relativement importante.

Surtout pour les bases de données d'application qui ont été mises en production. S'il est nécessaire de mettre à jour la migration, vous devez effectuer des exercices en amont pour

y faire face. urgences possibles. Un accident s'est produit.                                                                                                                               

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer