Maison >développement back-end >tutoriel php >Construire une application API Micro Markdown avec Lumen

Construire une application API Micro Markdown avec Lumen

William Shakespeare
William Shakespeareoriginal
2025-02-17 12:37:08441parcourir

Lumen: une alternative Laravel légère pour les microservices et les API

Ce tutoriel montre la construction d'une API d'analyse de marque à l'aide de Lumen, un micro-travail construit sur des composants illuminés de Laravel. Idéal pour les petites applications et services, la nature légère de Lumen assure des temps de démarrage rapides en chargeant sélectivement les composants. Nous tirons parti du package league/commonmark pour l'analyse de marque.

Building a Micro Markdown API App with Lumen

Pourquoi choisir Lumen?

Lumen offre une approche rationalisée pour les développeurs déjà familiers avec la syntaxe et l'élégance de Laravel. Contrairement à l'architecture complète de Laravel, Lumen évite les composants inutiles (éloquent, lame, etc.), résultant en une empreinte d'application plus petite et plus rapide, parfaite pour les tâches focalisées.

Configuration du projet: une API d'analyse de marque

Notre application acceptera le texte Markdown en entrée et renvoie le HTML analysé en JSON. Cela présente les capacités de Lumen dans un contexte pratique. Le code complet est disponible sur github (lien omis, selon le texte d'origine).

Installation et dépendances

Utilisez le programme d'installation de Lumen (composer global require "laravel/lumen-installer=~1.0") pour la création rapide de projets (lumen new my-project). Alternativement, utilisez le compositeur: composer create-project laravel/lumen my-project --prefer-dist. Installez league/commonmark avec composer require league/commonmark.

Structure du répertoire

La structure Lean de Lumen omet initialement les dossiers comme config, database et resources. Ceux-ci peuvent être ajoutés en utilisant des commandes d'artisan:

  • php artisan make foundation: crée des dossiers resources et database.
  • php artisan make resources: crée le dossier resources.
  • php artisan make database: crée le dossier database.
  • php artisan make lang: crée le dossier resources/lang.
  • php artisan make views: crée le dossier resources/views.

Implémentation de l'analyseur Markdown

<code class="language-php">// app/Http/routes.php

$app->get('/parse', 'App\Http\Controllers\MarkdownController@parse');</code>
<code class="language-php">// app/Http/Controllers/MarkdownController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use League\CommonMark\CommonMarkConverter;

class MarkdownController extends Controller
{
    public function parse(Request $request, CommonMarkConverter $parser)
    {
        $text = $request->get('text');
        $result = $parser->convertToHtml($text);

        return ['html' => $result];
    }
}</code>

Le point final /parse reçoit du texte de marquage, l'analyse en utilisant league/commonmark et renvoie le résultat HTML en tant que réponse JSON. L'injection de dépendance gère les objets CommonMarkConverter et Request. Les façades (par exemple, Request::get('text')) peuvent être activées (voir ci-dessous).

Activer les façades, éloquents et middleware

Lumen comprend des façades, un orm éloquent et un middleware, mais ils sont initialement désactivés dans bootstrap/app.php. Décommente ces lignes pour leur permettre:

<code class="language-php">// app/Http/routes.php

$app->get('/parse', 'App\Http\Controllers\MarkdownController@parse');</code>

Enregistrer les fournisseurs de services supplémentaires en utilisant $app->register('AppServiceProvider');.

en utilisant l'API

Testez l'API à l'aide d'un outil comme Guzzle:

<code class="language-php">// app/Http/Controllers/MarkdownController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use League\CommonMark\CommonMarkConverter;

class MarkdownController extends Controller
{
    public function parse(Request $request, CommonMarkConverter $parser)
    {
        $text = $request->get('text');
        $result = $parser->convertToHtml($text);

        return ['html' => $result];
    }
}</code>

Conclusion

Lumen fournit une alternative convaincante pour les petits projets, tirant parti des forces de Laravel tout en maintenant un profil léger. Sa facilité d'utilisation et son extensibilité en font un outil précieux pour les microservices et les API. La documentation complète offre plus de détails.

Building a Micro Markdown API App with Lumen

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:
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