Table des matières
Créer une interface API basée sur Laravel
Maison cadre php Laravel Créer une interface API basée sur Laravel

Créer une interface API basée sur Laravel

May 28, 2020 pm 04:03 PM
api

Créer une interface API basée sur Laravel

À propos de l'API

API (Application Programming Interface, Application Programming Interface) en sont quelques-uns Fonctions prédéfinies dont le but est de fournir aux applications et aux développeurs la possibilité d'accéder à un ensemble de routines basées sur un logiciel ou un matériel sans avoir à accéder au code source ou à comprendre les détails du fonctionnement interne.
Il convient de noter que l'API a son objectif spécifique, et nous devrions savoir ce qu'elle fait. Ce qui doit être saisi lors de l'accès à l'API. Que devriez-vous obtenir après avoir accédé à l'API.

Lorsque nous commençons à concevoir l'API, nous devons prêter attention à ces 8 points
Le plan de développement ultérieur tournera autour de cela.

1. Principes de conception reposants
2. Dénomination de l'API
3. Sécurité de l'API
4. Données de retour de l'API
5. Traitement des images
6. Informations d'invite de retour
7. Documentation de test de l'API en ligne
8. Lorsque l'application démarre, appelez une API d'initialisation pour obtenir les informations nécessaires

Développer une API avec Laravel

Juste au moment où je me demandais si je devais commencer à apprendre à partir de zéro, j'ai trouvé ce plug-in dingo/api, alors installons-le maintenant !
Tout d'abord, il doit être téléchargé correctement
Ajoutez le contenu suivant au laravel composer.json nouvellement installé

Puis ouvrez cmd et exécutez

composer update

Ajoutez

App\Providers\OAuthServiceProvider::class,
Dingo\Api\Provider\LaravelServiceProvider::class,
LucaDegasperi\OAuth2Server\Storage\FluentStorageServiceProvider::class,
LucaDegasperi\OAuth2Server\OAuth2ServerServiceProvider::class,
Copier après la connexion

aux fournisseurs dans config/app.php et ajoutez

'Authorizer' => LucaDegasperi\OAuth2Server\Facades\Authorizer::class,
Copier après la connexion

aux alias pour modifier l'application / Contenu dans le fichier Http/Kernel.php

protected $middleware = [\LucaDegasperi\OAuth2Server\Middleware\OAuthExceptionHandlerMiddleware::class,
];
protected $routeMiddleware = [
  'oauth' => \LucaDegasperi\OAuth2Server\Middleware\OAuthMiddleware::class,
  'oauth-user' => \LucaDegasperi\OAuth2Server\Middleware\OAuthUserOwnerMiddleware::class,
  'oauth-client' => \LucaDegasperi\OAuth2Server\Middleware\OAuthClientOwnerMiddleware::class,
  'check-authorization-params' => \LucaDegasperi\OAuth2Server\Middleware\CheckAuthCodeRequestMiddleware::class,
  'csrf' => \App\Http\Middleware\VerifyCsrfToken::class,
];
Copier après la connexion

puis exécutez

php artisan supplier:publier

php artisan migrate

Ajouter ces configurations dans le fichier .env

API_STANDARDS_TREE=x
API_SUBTYPE=rest
API_NAME=REST
API_PREFIX=api
API_VERSION=v1
API_CONDITIONAL_REQUEST=true
API_STRICT=false
API_DEBUG=true
API_DEFAULT_FORMAT=json
Copier après la connexion

Modifier le fichier appconfigoauth2.php

'grant_types' => [
  'password' => [
    'class' => 'League\OAuth2\Server\Grant\PasswordGrant',
    'access_token_ttl' => 604800,
    'callback' => '\App\Http\Controllers\Auth\PasswordGrantVerifier@verify',
  ],
],
Copier après la connexion

Créez un nouveau fournisseur de services. Créez un nouveau fichier OAuthServiceProvider.php sous app/Providers avec le contenu suivant :

namespace App\Providers;
 
use Dingo\Api\Auth\Auth;
use Dingo\Api\Auth\Provider\OAuth2;
use Illuminate\Support\ServiceProvider;
 
class OAuthServiceProvider extends ServiceProvider
{
  public function boot()
  {
    $this->app[Auth::class]->extend('oauth', function ($app) {
      $provider = new OAuth2($app['oauth2-server.authorizer']->getChecker());
 
      $provider->setUserResolver(function ($id) {
        // Logic to return a user by their ID.
      });
 
      $provider->setClientResolver(function ($id) {
        // Logic to return a client by their ID.
      });
 
      return $provider;
    });
  }
 
  public function register()
  {
    //
  }
}
Copier après la connexion

Ensuite, ouvrez routes.php et ajoutez les routes associées

//Get access_token
Route::post('oauth/access_token', function() {
   return Response::json(Authorizer::issueAccessToken());
});
 
//Create a test user, you don't need this if you already have.
Route::get('/register',function(){
  $user = new App\User();
   $user->name="tester";
   $user->email="test@test.com";
   $user->password = \Illuminate\Support\Facades\Hash::make("password");
   $user->save();
});
$api = app('Dingo\Api\Routing\Router');
 
//Show user info via restful service.
$api->version('v1', ['namespace' => 'App\Http\Controllers'], function ($api) {
  $api->get('users', 'UsersController@index');
  $api->get('users/{id}', 'UsersController@show');
});
 
//Just a test with auth check.
$api->version('v1', ['middleware' => 'api.auth'] , function ($api) {
  $api->get('time', function () {
    return ['now' => microtime(), 'date' => date('Y-M-D',time())];
  });
});
Copier après la connexion

Créez respectivement BaseController.php et UsersController.php avec le contenu suivant

//BaseController
namespace App\Http\Controllers;
 
use Dingo\Api\Routing\Helpers;
use Illuminate\Routing\Controller;
 
class BaseController extends Controller
{
  use Helpers;
}
 
//UsersController
namespace App\Http\Controllers;
 
use App\User;
use App\Http\Controllers\Controller;
 
class UsersController extends BaseController
{
 
  public function index()
  {
    return User::all();
  }
 
  public function show($id)
  {
    $user = User::findOrFail($id);
    // 数组形式
    return $this->response->array($user->toArray());
  }
}
Copier après la connexion

Ensuite, créez PasswordGrantVerifier.php sous app/Http/Controllers/Auth/ avec le contenu suivant

namespace App\Http\Controllers\Auth;
use Illuminate\Support\Facades\Auth;
 
class PasswordGrantVerifier
{
  public function verify($username, $password)
  {
     $credentials = [
      'email'  => $username,
      'password' => $password,
     ];
 
     if (Auth::once($credentials)) {
       return Auth::user()->id;
     }
 
     return false;
  }
}
Copier après la connexion

Ouvrez le oauth_client de la base de données et ajoutez une nouvelle donnée client

INSERT INTO 'oauth_clients' ('id', 'secret', 'name', 'created_at', 'updated_at') VALUES ('1', '2', 'Main website', '2016–03–13 23:00:00', '0000–00–00 00:00:00');
Copier après la connexion

Ensuite, il est temps de s'amuser en testant. Les API à tester ici sont

Ajouter une. nouvel utilisateur

http://localhost/register

Lire toutes les informations utilisateur

http://localhost/api/users

Renvoyer uniquement les informations avec identifiant utilisateur 4

http:/ /localhost/api/users/4

Obtenir access_token

http://localhost/oauth/access_token

Utiliser la valeur du jeton pour obtenir l'heure. Ce n'est que lorsque la valeur du jeton est correcte que la valeur correcte peut être renvoyée

http://localhost/api/time

Open PostMan


Pour plus d'articles techniques sur le framework Laravel, veuillez visiter le tutoriel laravel !

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide de développement de recherche PHP et Manticore : créez rapidement une API de recherche Guide de développement de recherche PHP et Manticore : créez rapidement une API de recherche Aug 07, 2023 pm 06:05 PM

Guide de développement PHP et ManticoreSearch : Créer rapidement une API de recherche La recherche est l'une des fonctionnalités indispensables des applications Web modernes. Qu'il s'agisse d'un site Web de commerce électronique, d'une plateforme de médias sociaux ou d'un portail d'actualités, il doit fournir une fonction de recherche efficace et précise pour aider les utilisateurs à trouver le contenu qui les intéresse. En tant que moteur de recherche en texte intégral doté d'excellentes performances, ManticoreSearch nous fournit un outil puissant pour créer d'excellentes API de recherche. Cet article vous montrera comment

Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? Sep 05, 2023 am 08:41 AM

Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? 1. Introduction Dans les projets PHP, nous devons souvent explorer les données d'autres sites Web et traiter ces données. De nombreux sites Web fournissent des interfaces API et nous pouvons obtenir des données en appelant ces interfaces. Cet article explique comment utiliser PHP pour appeler l'interface API afin d'explorer et de traiter les données. 2. Obtenez l'URL et les paramètres de l'interface API Avant de commencer, nous devons obtenir l'URL de l'interface API cible et les paramètres requis.

Comment gérer les problèmes d'erreur de l'API Laravel Comment gérer les problèmes d'erreur de l'API Laravel Mar 06, 2024 pm 05:18 PM

Titre : Comment gérer les problèmes d'erreur de l'API Laravel, des exemples de code spécifiques sont nécessaires lors du développement de Laravel, des erreurs d'API sont souvent rencontrées. Ces erreurs peuvent provenir de diverses raisons telles que des erreurs logiques du code du programme, des problèmes de requête de base de données ou des échecs de requête d'API externe. La façon de gérer ces rapports d'erreurs est un problème clé. Cet article utilisera des exemples de code spécifiques pour démontrer comment gérer efficacement les rapports d'erreurs de l'API Laravel. 1. Gestion des erreurs dans Laravel

Enregistrez les données de l'API au format CSV à l'aide de Python Enregistrez les données de l'API au format CSV à l'aide de Python Aug 31, 2023 pm 09:09 PM

Dans le monde des applications et de l'analyse basées sur les données, les API (Application Programming Interfaces) jouent un rôle essentiel dans la récupération de données provenant de diverses sources. Lorsque vous travaillez avec des données API, vous devez souvent stocker les données dans un format facile d'accès et de manipulation. L'un de ces formats est le CSV (Comma Separated Values), qui permet d'organiser et de stocker efficacement les données tabulaires. Cet article explorera le processus de sauvegarde des données API au format CSV à l'aide du puissant langage de programmation Python. En suivant les étapes décrites dans ce guide, nous apprendrons comment récupérer des données de l'API, extraire des informations pertinentes et les stocker dans un fichier CSV pour une analyse et un traitement plus approfondis. Plongeons dans le monde du traitement de données API avec Python et libérons le potentiel du format CSV

Guide d'appel de l'API React : Comment interagir et transférer des données avec l'API backend Guide d'appel de l'API React : Comment interagir et transférer des données avec l'API backend Sep 26, 2023 am 10:19 AM

Guide d'appel ReactAPI : Comment interagir avec et transférer des données vers l'API backend Présentation : Dans le développement Web moderne, interagir avec et transférer des données vers l'API backend est une exigence courante. React, en tant que framework frontal populaire, fournit des outils et fonctionnalités puissants pour simplifier ce processus. Cet article explique comment utiliser React pour appeler l'API backend, y compris les requêtes de base GET et POST, et fournit des exemples de code spécifiques. Installez les dépendances requises : Tout d'abord, assurez-vous qu'Axi est installé dans le projet

Guide d'utilisation de l'API Oracle : exploration de la technologie d'interface de données Guide d'utilisation de l'API Oracle : exploration de la technologie d'interface de données Mar 07, 2024 am 11:12 AM

Oracle est un fournisseur de systèmes de gestion de bases de données de renommée mondiale et son API (Application Programming Interface) est un outil puissant qui aide les développeurs à interagir et à s'intégrer facilement aux bases de données Oracle. Dans cet article, nous approfondirons le guide d'utilisation de l'API Oracle, montrerons aux lecteurs comment utiliser la technologie d'interface de données pendant le processus de développement et fournirons des exemples de code spécifiques. 1.Oracle

Analyse de la stratégie d'intégration des API Oracle : parvenir à une communication transparente entre les systèmes Analyse de la stratégie d'intégration des API Oracle : parvenir à une communication transparente entre les systèmes Mar 07, 2024 pm 10:09 PM

Analyse de la stratégie d'intégration de l'API Oracle : pour parvenir à une communication transparente entre les systèmes, des exemples de code spécifiques sont nécessaires. À l'ère numérique d'aujourd'hui, les systèmes internes de l'entreprise doivent communiquer entre eux et partager des données, et l'API Oracle est l'un des outils importants pour contribuer à une communication transparente. communication entre les systèmes. Cet article commencera par les concepts et principes de base d'OracleAPI, explorera les stratégies d'intégration d'API et enfin donnera des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et appliquer OracleAPI. 1. API Oracle de base

Suggestions de développement : Comment utiliser le framework ThinkPHP pour le développement d'API Suggestions de développement : Comment utiliser le framework ThinkPHP pour le développement d'API Nov 22, 2023 pm 05:18 PM

Suggestions de développement : Comment utiliser le framework ThinkPHP pour le développement d'API Avec le développement continu d'Internet, l'importance de l'API (Application Programming Interface) est devenue de plus en plus importante. L'API est un pont de communication entre différentes applications. Elle peut réaliser le partage de données, l'appel de fonctions et d'autres opérations, et offre aux développeurs une méthode de développement relativement simple et rapide. En tant qu'excellent framework de développement PHP, le framework ThinkPHP est efficace, évolutif et facile à utiliser.

See all articles