Rumah >rangka kerja php >Swoole >Cara menggunakan rangka kerja Hyperf untuk pembangunan antara muka API
Cara menggunakan rangka kerja Hyperf untuk pembangunan antara muka API
Persediaan persekitaran
Pertama sekali, kita perlu menyediakan persekitaran pembangunan rangka kerja Hyperf dalam persekitaran setempat. Anda boleh menggunakan alat Komposer untuk mencipta projek Hyperf dengan menjalankan arahan berikut dalam terminal:
composer create-project hyperf/hyperf hyperf-demo
Buat Pengawal API
Dalam rangka kerja Hyperf, kami boleh lulus Cipta pengawal untuk menentukan antara muka API. Dalam terminal, tukar ke direktori akar projek dan laksanakan arahan berikut untuk mencipta pengawal API:
php bin/hyperf.php make:controller User
Ini akan mencipta API bernama fail pengawal UserController
. App/Controller
目录下创建一个名为UserController
的控制器文件。
定义API接口方法
在UserController
控制器文件中,我们可以定义多个方法来处理不同的API接口。例如,我们可以定义一个名为getUser
的方法,用于获取用户信息。方法的代码示例如下:
<?php declare(strict_types=1); namespace AppController; use HyperfHttpServerAnnotationController; use HyperfHttpServerAnnotationGetMapping; /** * @Controller(prefix="/user") */ class UserController { /** * @GetMapping(path="get") */ public function getUser(): array { return [ 'id' => 1, 'name' => 'John Doe', 'email' => 'john.doe@example.com', ]; } }
在上述代码中,我们使用了Controller
和GetMapping
注解来标识控制器和方法。GetMapping
注解定义了API接口的请求方式和路径。
启动Hyperf服务
在终端中,切换到项目根目录并执行以下命令来启动Hyperf服务:
php bin/hyperf.php start
启动成功后,Hyperf将监听在http://127.0.0.1:9501
地址上。
http://127.0.0.1:9501/user/get
地址,即可获取用户信息。例如,我们可以在getUser
方法中增加参数验证和异常抛出的代码:
<?php declare(strict_types=1); namespace AppController; use HyperfHttpServerAnnotationController; use HyperfHttpServerAnnotationGetMapping; use AppRequestUserRequest; use HyperfDiAnnotationInject; use HyperfValidationContractValidatorFactoryInterface; /** * @Controller(prefix="/user") */ class UserController { /** * @Inject * @var ValidatorFactoryInterface */ protected $validationFactory; /** * @GetMapping(path="get") */ public function getUser(UserRequest $request): array { $validator = $this->validationFactory->make($request->all(), $request->rules()); if ($validator->fails()) { throw new InvalidArgumentException($validator->errors()->first()); } return [ 'id' => 1, 'name' => 'John Doe', 'email' => 'john.doe@example.com', ]; } }
在上述代码中,我们使用了UserRequest
类来定义用户请求参数的验证规则。通过依赖注入获取到ValidatorFactoryInterface
接口,并使用其make
方法创建验证器。如果验证失败,我们抛出了一个InvalidArgumentException
UserController
, kami boleh mentakrifkan berbilang kaedah untuk mengendalikan antara muka API yang berbeza . Sebagai contoh, kita boleh mentakrifkan kaedah bernama getUser
untuk mendapatkan maklumat pengguna. Contoh kod kaedah adalah seperti berikut: Controller
dan GetMapping
untuk mengenal pasti pengawal dan kaedah . Anotasi GetMapping
mentakrifkan kaedah permintaan dan laluan antara muka API. #🎜🎜##🎜🎜##🎜🎜##🎜🎜#Mulakan perkhidmatan Hyperf#🎜🎜#Di terminal, tukar ke direktori akar projek dan laksanakan arahan berikut untuk memulakan perkhidmatan Hyperf: #🎜🎜#rreee# 🎜🎜# Selepas permulaan yang berjaya, Hyperf akan mendengar pada alamat http://127.0.0.1:9501
. #🎜🎜##🎜🎜##🎜🎜#Uji antara muka API#🎜🎜#Gunakan sebarang alat ujian API, seperti Posmen atau arahan curl, untuk menghantar permintaan GET ke http://127.0.0.1:9501 /user /get
alamat untuk mendapatkan maklumat pengguna. #🎜🎜##🎜🎜#Pengesahan antara muka dan pengendalian pengecualian#🎜🎜#Dalam pembangunan sebenar, kami selalunya perlu mengesahkan dan pengecualian mengendalikan antara muka API. Rangka kerja Hyperf menyediakan alat pengesahan dan pengendalian pengecualian yang kaya untuk melaksanakan fungsi ini dengan mudah. #🎜🎜##🎜🎜##🎜🎜#Sebagai contoh, kita boleh menambah pengesahan parameter dan kod lontaran pengecualian dalam kaedah getUser
: #🎜🎜#rrreee#🎜🎜#Dalam kod di atas, kami menggunakan kelas UserRequest
untuk mentakrifkan peraturan pengesahan bagi parameter permintaan pengguna. Dapatkan antara muka ValidatorFactoryInterface
melalui suntikan kebergantungan dan gunakan kaedah make
untuk mencipta validator. Jika pengesahan gagal, kami membuang pengecualian InvalidArgumentException
. #🎜🎜##🎜🎜##🎜🎜#Kesimpulan#🎜🎜#Melalui pengenalan artikel ini, kami telah mempelajari cara menggunakan rangka kerja Hyperf untuk pembangunan antara muka API dan menyediakan contoh kod khusus. Rangka kerja Hyperf menyediakan pelbagai alatan dan komponen untuk membantu pembangun membina antara muka API berprestasi tinggi dengan cepat. Saya harap artikel ini akan membantu anda dalam pembangunan antara muka API. #🎜🎜##🎜🎜#Atas ialah kandungan terperinci Cara menggunakan rangka kerja Hyperf untuk pembangunan antara muka API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!