Laravel API教程:如何构建和测试RESTful API

您所在的位置:网站首页 laravelapi开发 Laravel API教程:如何构建和测试RESTful API

Laravel API教程:如何构建和测试RESTful API

2024-05-30 01:55| 来源: 网络整理| 查看: 265

前言

本文原文:Laravel API Tutorial: How to Build and Test a RESTful API

这次一次来了两个没接触过的内容,一个与php的Laravel 有关,一个与Docker有关,由于Docker需要安装虚拟机什么的,就先以这个与Laravel有关的开篇。虽然会一步步跟着做,但由于php还只停留在几年前的初学阶段,以及个人英语水平所限,有些新名词可能会理解有误,翻译过程中难免出现错误之处,还请各位能见谅与指出或有能力也可以直接点击上面的链接查看英文原文。

文章正文

随着移动开发与JavaScript框架的兴起,使用RESTful API为数据与客户端之间构建单一接口成为最佳选择。

Laravel 是一个 专注提高开发人员生产力的php开发框架。 由Taylor Otwell撰写和维护,框架非常有意义,并努力通过支持 惯例优于配置原则( convention over configuration)来节省开发人员时间。该框架还旨在与Web一起发展,并已在Web开发界中纳入了几个新功能和想法,例如作业队列,开箱即用的API认证,实时通信等等。

Laravel API教程:如何构建和测试RESTful APILaravel API教程:如何构建和测试RESTful API

在本文中,我们将探讨如何构建和测试使用Laravel进行身份验证的强大API。我们将使用Laravel 5.4,所有的代码都可以在GitHub上参考。

RESTful APIs

首先,我们需要了解什么是RESTful API。 REST是 REpresentational State Transfer的简称, 是一种应用程序之间的网络通信的设计风格,它依赖无状态协议(通常为HTTP)进行交互。

HTTP动词表示动作(HTTP Verbs Represent Actions)

在RESTful API中,我们使用HTTP动词作为动作( actions),并且端点是所执行的资源。我们将使用HTTP动词的语义:

GET:检索资源POST:创建资源PUT:更新资源DELETE:删除资源Laravel API教程:如何构建和测试RESTful APILaravel API教程:如何构建和测试RESTful API更新动作:PUT vs POST

RESTful API中有很多争论的问题,对于使用POST,PATCH或者PUT更新哪个是最好的,或者创建动作最好留给PUT动词这种问题有很多的意见。在本文中,我们将使用PUT更新操作,根据HTTP RFC,,PUT意味着在特定位置创建/更新资源。PUT动词的另一个要求是幂等,在这种情况下,基本上意味着您可以发送该请求1,2或1000次,结果将相同:数据库中的一个更新的资源。

幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“setTrue()”函数就是一个幂等函数,无论多次执行,其结果都是一样的.更复杂的操作幂等保证是利用唯一交易号(流水号)实现。 来源百度百科

资源(Resources)

资源将是actions的目标,在我们的文章和用户的情况下,他们有自己的端点:

/articles/users

在这个laravel api教程中,资源将在我们的数据模型中具有1:1的表示,但这不是一个必须的要求。您可以将资源表示在多个数据模型中(或根本不在数据库中表示),并且模型完全不受用户限制。最后,您将以适合您的应用程序的方式来决定如何构建资源和模型。

关于一致性的说明

使用一组约定(如REST)的最大优点是您的API将更容易消费和开发。有些端点是非常明确,而且,作为一个结果,你的API将更加易于使用和维护,而不是这样的端点例如GET /get_article?id_article=12和POST /delete_article?number=40。我在过去已经建立了糟糕的API,我仍然因为这个恨自己。

但是,将会很难映射到创建/检索/更新/删除模式。请记住,URL不应包含动词,资源不一定是表中的行。要记住的另一件事是,您不必为每个资源实施每个操作。

创建你的项目

与所有现代PHP框架一样,我们需要Composer来安装和处理我们的依赖关系。在您遵循下载说明(并添加到您的路径环境变量)后,使用以下命令安装Laravel:

代码语言:javascript复制$ composer global require laravel/installer

安装完成后,您可以像这样创建(手脚架 scaffold)一个新应用程序:

代码语言:javascript复制$ laravel new myapp

对于上面的命令,你需要确保~/composer/vendor/bin在你的$PATH。如果您不想处理,还可以使用Composer创建一个新项目:

代码语言:javascript复制$ composer create-project --prefer-dist laravel/laravel myapp

安装Laravel后,您应该可以启动服务器并测试一切正常工作:

代码语言:javascript复制$ php artisan serve Laravel development server started: Laravel API教程:如何构建和测试RESTful APILaravel API教程:如何构建和测试RESTful API

当您localhost:8000在浏览器上打开时,应该会看到这个示例页面。

迁移和模型(Migrations and Models)

在实际编写第一次迁移之前,请确保为此应用程序创建了一个数据库,并将其凭据添加到.env位于项目根目录中的文件中。

代码语言:javascript复制DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret

您也可以使用专为Laravel特制的Vagrant盒子Homestead,但这远远超出了本文的范围。如果您想了解更多信息,请参阅Homestead文档。

让我们开始我们的第一个模型和Migrations - 文章。该文章应该有一个标题和一个正文字段,以及创建日期。Laravel通过Artisan-Laravel的命令行工具提供了几个命令,可以通过生成文件并将其放在正确的文件夹中来帮助我们。要创建文章模型,我们可以运行:

代码语言:javascript复制$ php artisan make:model Article -m

该-m选项是缩写--migration,它告诉Artisan为我们的模型创建一个。以下是生成的Migrations:

代码语言:javascript复制


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3