lumen: Alternatif Laravel ringan untuk microservices dan API
Tutorial ini menunjukkan membina API parser markdown menggunakan Lumen, kerangka mikro yang dibina di atas komponen Laravel yang menerangi. Sesuai untuk aplikasi dan perkhidmatan kecil, sifat ringan Lumen memastikan masa boot yang cepat dengan komponen pemuatan selektif. Kami akan memanfaatkan pakej league/commonmark
untuk parsing markdown.
Lumen menawarkan pendekatan yang diselaraskan untuk pemaju yang sudah biasa dengan sintaks dan keanggunan Laravel. Tidak seperti seni bina stack Laravel, Lumen mengelakkan komponen yang tidak perlu (fasih, bilah, dan lain-lain), menghasilkan jejak aplikasi yang lebih kecil, lebih cepat, sesuai untuk tugas-tugas yang difokuskan.
Persediaan Projek: API Parser Markdown
Permohonan kami akan menerima teks markdown sebagai input dan mengembalikan HTML yang dihuraikan sebagai JSON. Ini mempamerkan keupayaan Lumen dalam konteks praktikal. Kod Lengkap boleh didapati di GitHub (pautan ditinggalkan, seperti teks asal).
Pemasangan dan Ketergantungan
Gunakan pemasang lumen (
) untuk penciptaan projek cepat (). Sebagai alternatif, gunakan komposer: composer global require "laravel/lumen-installer=~1.0"
. Pasang lumen new my-project
dengan composer create-project laravel/lumen my-project --prefer-dist
. league/commonmark
composer require league/commonmark
Struktur direktori
struktur lean Lumen pada mulanya menghilangkan folder seperti
,, dan config
. Ini boleh ditambah menggunakan arahan Artisan: database
resources
php artisan make foundation
folder. resources
database
php artisan make resources
resources
php artisan make database
database
php artisan make lang
resources/lang
php artisan make views
resources/views
// app/Http/routes.php $app->get('/parse', 'App\Http\Controllers\MarkdownController@parse');
// 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]; } }
, dan mengembalikan hasil HTML sebagai respons JSON. Suntikan ketergantungan mengendalikan objek /parse
dan league/commonmark
. Facades (mis., CommonMarkConverter
Request
Membolehkan fasad, fasih, dan middleware Request::get('text')
. Uncomment garis -garis ini untuk membolehkan mereka:
// app/Http/routes.php $app->get('/parse', 'App\Http\Controllers\MarkdownController@parse');
Daftar penyedia perkhidmatan tambahan menggunakan $app->register('AppServiceProvider');
.
menggunakan API
menguji API menggunakan alat seperti Guzzle:
// 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]; } }
Kesimpulan
Lumen menyediakan alternatif yang menarik untuk projek yang lebih kecil, memanfaatkan kekuatan Laravel sambil mengekalkan profil ringan. Kemudahan penggunaan dan kelanjutan menjadikannya alat yang berharga untuk microservices dan API. Dokumentasi penuh menawarkan butiran lanjut.
Atas ialah kandungan terperinci Membina aplikasi API Markdown Micro dengan Lumen. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!