Cet article présente principalement les informations pertinentes sur la création d'une interface APP (API) basée sur Laravel. Les amis dans le besoin peuvent s'y référer. J'espère que cela aide tout le monde.
Préparation préliminaire
Préface, pourquoi et que faire
Mon nom de famille est Bai, et je suis novice en programmation Cependant, depuis. Je suis entré en contact avec les merveilles de la programmation au cours de ma première année, j'ai été complètement immergé dans le monde de la programmation.
Non, j'ai récemment recommencé à jouer avec les applications. On dit qu'il est très facile de développer une application maintenant. Elle peut être complétée avec seulement du JavaScript et un peu de technologie HTML+css. Mais le backend de l’APP est différent. Après avoir développé une application et souhaité y lire des données, nous devons développer un backend.
Le framework Laravel est mon framework PHP préféré, sans exception. L'année dernière, j'ai utilisé Laravel pour écrire mon site Web personnel, mais la rugosité m'a fait rougir. D'accord, n'entrons pas dans les détails, passons directement au sujet - installez d'abord Laravel !
Configuration de l'environnement de base
Pour les étapes spécifiques, veuillez vous référer directement à la documentation d'installation de Laravel5.2
La mienne. L'environnement est Win10. Wampsrver2.5 est installé ci-dessus, mais cela vaut la peine d'y prêter attention. Si vous utilisez wampsrver2.5, ces emplacements doivent être modifiés. A ce propos, merci de lire mes notes et de cliquer pour prévisualiser
Outil : sublime
Navigateur : chrome (plug-in postman à utiliser)
À propos de l'API
API (Application Programming Interface, Application Programming Interface) sont des fonctions prédéfinies qui offrent aux applications et aux développeurs la possibilité d'accéder à un ensemble de routines basées sur certains logiciels ou matériels sans accéder au code source, ou de comprendre les détails du fonctionnements internes.
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 contenu ici est extrait du blog du maître
Le plan de développement ultérieur tournera autour de cela. (Vraiment excellent résumé)
1.Principes de conception reposants
2.Nom 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 renvoyées
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
Utiliser l'API de développement 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é
Ensuite, ouvrez cmd et exécutez
composer update
dans config/ app. Ajoutez
App\Providers\OAuthServiceProvider::class, Dingo\Api\Provider\LaravelServiceProvider::class, LucaDegasperi\OAuth2Server\Storage\FluentStorageServiceProvider::class, LucaDegasperi\OAuth2Server\OAuth2ServerServiceProvider::class,
aux fournisseurs en php et ajoutez
'Authorizer' => LucaDegasperi\OAuth2Server\Facades\Authorizer::class,
aux alias. Modifiez le contenu dans le fichier app/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, ];
php artisan vendor:publish php artisan migrate
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
'grant_types' => [ 'password' => [ 'class' => 'League\OAuth2\Server\Grant\PasswordGrant', 'access_token_ttl' => 604800, 'callback' => '\App\Http\Controllers\Auth\PasswordGrantVerifier@verify', ], ],
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() { // } }
//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())]; }); });
//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()); } }
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; } }
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');
.
http://localhost/api/timeRecommandations associées :
Comment accéder au paiement Paypal dans Larvel5
Apprenez la relation éloquente de Laravel5
Utilisation de la file d'attente dans 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!