laravel作为一门流行的php框架,已经成为了开发人员写api的首选。通过laravel,你可以快速编写高质量的api,其越来越受到企业级和个人开发者的欢迎。
在这篇文章中,我们将探讨如何使用Laravel编写API。我们将从以下几个方面入手:构建API、API路由、控制器和API测试。
构建API
在构建API时,需要使用Laravel提供的内置中间件和路由器。从Laravel 5.5开始,框架内置了API资源控制器(API Resource Controller)功能。这个特性使得开发者可以更快的创建标准的REST API,并且帮助开发者维护代码一致性。
如何使用资源控制器?首先,在命令行中执行以下命令,新建一个控制器:
1
php artisan make:controller Api/PostController --api
API路由
在Laravel中,路由与控制器紧密耦合,因为我们需要在路由中定义处理API请求的顶级控制器。
1
2
3
Route::prefix(api)->group(function () {
Route::resource(posts, ApiPostController);
});
这个路由定义了一个/api/posts的URL,用来操作Post模型的 CRUD 功能。
控制器
在资源控制器中,我们可以使用预定义的函数来处理常见的任务。例如,下面的代码开始创建并附加post文章的文件上传,将文件从存储库中移动到公共目录中:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function store(Request $request)
{
$path = $request->file(photo)->store(public/photos);
$post = new Post;
$post->title = $request->input(title);
$post->description = $request->input(description);
$post->slug = str_slug($request->input(title));
$post->photo = $path;
$post->save();
return new Resource($post);
}
API测试
测试API是确保其功能正常工作的关键,请确保在编写API时编写测试用例。Laravel也内置了框架测试工具来帮助您轻松地编写测试用例。
在为API编写测试时,您可以使用发送HTTP请求并检查响应的方法来测试控制器。例如,下面的代码测试控制器是否可以正确地获取帖子的列表:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public function testPostIndex()
{
$response = $this->json(GET, /api/posts);
$response->assertStatus(200);
$response->assertJsonStructure([
data => [
* => [
id,
title,
description,
slug,
photo,
created_at,
updated_at
]
]
]);
}
结论
在Laravel中,编写API非常容易。使用预定义的API控制器和内置的路由器,您可以快速创建标准的REST API。使用Laravel的测试工具编写测试用例,检查API功能是否正常工作。优秀的文档和社区支持,是让Laravel成为开发人员最受欢迎的框架之一的关键因素。
以上就是laravel如何写api的详细内容,更多请关注php中文网其它相关文章!