Maison > développement back-end > Problème PHP > Explication détaillée de deux méthodes couramment utilisées pour écrire des interfaces en PHP

Explication détaillée de deux méthodes couramment utilisées pour écrire des interfaces en PHP

PHPz
Libérer: 2023-03-31 09:50:13
original
1230 Les gens l'ont consulté

Ces dernières années, avec le développement continu de l'industrie Internet, le concept d'API (Application Programming Interface, interface de programme d'application) est progressivement devenu familier aux gens. Dans l'architecture et le développement de logiciels modernes, l'API n'est pas seulement un composant technique important, mais également le cœur du soutien à la croissance de l'entreprise et à la création de plates-formes.

Dans la mise en œuvre de l'API, PHP est également l'un des langages back-end les plus utilisés. En PHP, il existe généralement deux méthodes pour écrire des interfaces API, et cet article les présentera.

1. Méthode traditionnelle

La méthode traditionnelle peut également être appelée la méthode dans le framework MVC basé sur PHP. Cette méthode organise généralement le code de l'interface API et du contrôleur (Controller) dans le framework MVC en un tout.

Dans cette méthode, nous devons d'abord définir une classe de contrôleur, par exemple :

class ApiController {
    public function index() {
        // 代码逻辑
    }
    public function add() {
        // 代码逻辑
    }
    // 更多的业务方法
}
Copier après la connexion

Ensuite, définir une route pour transmettre la requête à la méthode de contrôleur correspondante, par exemple :

// 定义路由
Route::get('api', 'ApiController@index');
Route::post('api/add', 'ApiController@add');
// 更多的路由定义
Copier après la connexion

Enfin, nous devons ajouter ce qui suit à à la fin de chaque méthode, renvoie le résultat sous forme JSON :

return json_encode($result);
Copier après la connexion

Parmi les méthodes traditionnelles, c'est une manière plus traditionnelle. L'organisation de l'API via le contrôleur du framework MVC est plus raisonnable en termes de vitesse de développement et de maintenabilité du code, mais certains projets émergents peuvent avoir des exigences de performances plus élevées. À l'heure actuelle, nous devons envisager d'utiliser la deuxième méthode :

2. .La méthode de Laravel

Laravel est un framework de développement d'applications Web PHP basé sur l'architecture MVC, qui peut obtenir la meilleure combinaison de développement Web efficace et de technologie de développement Web moderne. Le développement de l'API dans Laravel est également réalisé à l'aide d'un composant spécialisé - [Laravel Dingo API](https://github.com/dingo/api/).

Fonctionnalités de l'API Laravel Dingo :

  • Flexibilité et maintenabilité du routage
  • Fournir une meilleure sortie API via le sérialiseur (Serializer) et le générateur de réponses (Fractal).
  • La méthode d'authentification basée sur OAuth2 est actuellement l'une des méthodes d'authentification les plus populaires.
  • Fournit l'outil de documentation API Swagger pour aider les équipes à mieux gérer la documentation API.

Dans l'API Laravel Dingo, nous pouvons facilement créer des routes et des contrôleurs API. Tout d'abord, nous devons définir la méthode de requête et le format d'URL de l'API dans la route, par exemple :

$api = app(Dingo\Api\Routing\Router::class);

$api->version('v1', function ($api) {
    $api->get('items/{id}', 'App\Http\Controllers\ItemsController@show');
    $api->post('items', 'App\Http\Controllers\ItemsController@store');
    $api->put('items/{id}', 'App\Http\Controllers\ItemsController@update');
    $api->delete('items/{id}', 'App\Http\Controllers\ItemsController@destroy');
});
Copier après la connexion

Ensuite, nous devons implémenter la logique de code de l'API dans le contrôleur, par exemple :

use Illuminate\Http\Request;

class ItemsController extends Controller {
    public function show($id) {
        $item = Item::find($id);
        return $item;
    }

    public function store(Request $request) {
        $item = new Item;
        $item->title = $request->input('title');
        $item->description = $request->input('description');
        $item->save();
        return $item;
    }

    public function update(Request $request, $id) {
        $item = Item::find($id);
        $item->title = $request->input('title');
        $item->description = $request->input('description');
        $item->save();
        return $item;
    }

    public function destroy($id) {
        $item = Item::find($id);
        $item->delete();
        return $item;
    }
}
Copier après la connexion

Dans le Laravel API Dingo, nous pouvons utiliser des méthodes de sortie plus flexibles, telles que :

use Illuminate\Http\Request;
use Dingo\Api\Routing\Helpers;
use App\Transformers\ItemsTransformer;

class ItemsController extends Controller {
    use Helpers;

    public function show($id) {
        $item = Item::find($id);
        return $this->response->item($item, new ItemsTransformer);
    }

    public function index() {
        $items = Item::all();
        return $this->response->collection($items, new ItemsTransformer);
    }

    public function store(Request $request) {
        $item = new Item;
        $item->title = $request->input('title');
        $item->description = $request->input('description');
        $item->save();
        return $this->response->item($item, new ItemsTransformer);
    }

    public function update(Request $request, $id) {
        $item = Item::find($id);
        $item->title = $request->input('title');
        $item->description = $request->input('description');
        $item->save();
        return $this->response->item($item, new ItemsTransformer);
    }

    public function destroy($id) {
        $item = Item::find($id);
        $item->delete();
        return $this->response->noContent();
    }
}
Copier après la connexion

Nous pouvons utiliser le trait Helper pour afficher de manière flexible le format de réponse en utilisant $this->response->item et $this->response-> ;collection. Nous pouvons également utiliser Transformer pour convertir le modèle au format requis dans l'API.

Résumé

Dans cet article, nous avons appris deux méthodes d'implémentation d'API en PHP : la méthode traditionnelle et la méthode de Laravel. Cependant, à mesure que l’industrie Internet continue de se développer, la mise en œuvre des API évolue également constamment. Nous devons choisir une méthode de mise en œuvre appropriée en fonction des besoins spécifiques du projet.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal