您的位置 首页 php

如何在 Laravel in (HMVC) 模式中快速创建完整的 crud API(第1部分)

b7bfd3e51dde479897f1bfd36da7e000

介绍

美好的一天,今天我们将构建一个完整的 CRUD 系统(Web 和 API)。 API 是一种软件中介,它允许两个应用程序相互通信。 您可能需要创建一个可以在不同语言或框架上运行的应用程序,例如,您可以使用 Laravel 为您的应用程序创建后端,而前端可以在任何 JavaScript 框架上运行。 API 允许两个或多个程序相互通信。

有不同类型的 API,但今天我们将专注于 RESTful API。 REST 代表 Representational State Transfer,而 API 代表应用程序编程接口。 您可以从 Internet 或其他编程材料中阅读有关 API 的更多信息。

先决条件

我们将使用一个名为 Laragine 的 Laravel 包,这个包可以帮助我们通过编写简单的命令来创建一个完整的 CRUD 系统。不用多说,让我们深入了解它。

什么是拉力精?

Laragine 是一个 Laravel 包,它是为了使用模块来管理你的大型 Laravel 应用程序而创建的,假设你将构建一个博客,该博客由(post-comment-like)组成,blog-> 是一个模块,(post-comment-像)-> 称为单元 Laragine 构建了具有所有 CRUD 功能的模块和单元(迁移 – 工厂 – 测试 – 控制器 – 模型)你所要做的就是在路由文件中包含链接,太棒了,对!

在本教程中,我们将只为具有完整 CRUD 功能的博客创建一个帖子,因此我们将创建一个名为 blog 的模块,然后我们将创建一个名为 post 的单元,您现在可能会问我们为什么要构建应用程序以模块化方式?如果您不知道,请参阅我创建的这篇文章,讨论我们如何在 Laravel 中组织大型项目。

第 1 步:安装 Laravel 8

要安装最新的 Laravel 框架(截至本文发布时为 Laravel 8.0),请运行以下命令

作曲家创建项目 –prefer-dist laravel/laravel laravel_8

这将自动创建一个 Laravel 8 应用程序,并且已经设置了一些东西,我们不需要复制和重命名 env.example 文件,Laravel 8 会自动为我们完成。

328997f0647d4384972466b42b8adb59

Laravel 8 还有一个重要的事情,你不需要生成 APP_KEY,这个新版本也会为我们生成它。

c81293d27b1b4a08a6a05fe8437d7000

完成所有设置后,我们的应用程序就准备好了。

第 2 步:数据库设置

创建一个空数据库,打开 .env 文件,然后更新您的数据库配置。

04606fc86bc242d79b146132830a627c

第 3 步:需要 Laragine 包装

让我们安装 Laragine。

composer require yepwoo/laragine

dba641e09e0947698da7a069fc452322

第 4 步:安装 软件包

包含 Laragine 后,您必须通过运行以下命令来安装它:

php artisan laragine:install

这是 Laragine 的初始命令

e305d1e7d37a42ed98f3e1e45ac25d09

笔记

运行该命令后,Laragine 目录将在 core 目录下的根目录下。

08a8eb2b47de4b5ca2d34887fd2d577d

第 5 步:创建博客模块

运行以下命令并指定模块的名称,在我们的例子中将是 blog

php artisan laragin:module blog

  • 任何模块都将添加到 core directory
  • 运行命令后,博客目录将在 core 目录中。
6e3ca0afffa1445887e05f5ed335e16d

第 6 步:创建单元

创建我们的模块(博客)后,我们需要创建一个帖子,对吧?

单元命令由 2 个命令组成

初始化命令:

创建所有基本文件并将创建一个 JSON 文件,我们将指定我们想要将其添加到数据库的属性,我们应该指定我们想要在其下添加单元的模块的名称,即 blog in this 例子。

第二条命令:

这是没有 init 选项的相同命令,该命令将根据我们在 JSON 文件中指定的数据自动创建以下所有文件。

  1. 移民
  2. 要求
  3. 资源
  4. 工厂
  5. 单元测试

让我们运行命令,我们应该指定要在其下创建单元的模块的名称和单元的名称

php artisan laragin:unit post –module=blog –init

我们包括 –init 因为它是 unit 命令的第一部分

运行命令后,它将生成基本文件 Controller (API – web) – Model 以及我们将在其中写入属性的 JSON 文件。

44b936b5e0964518b9ddca756e5cfdd3

现在我们应该在 Post.json 文件中指定我们的属性,让我们首先知道我们需要哪些属性! 让我们从这篇文章的基础开始我只是想告诉你如何使用这个包,你可以添加你想要的任意数量的属性,任何帖子都有标题、正文、缩略图

笔记

如果我们不将属性设置为可为空,则默认情况下将需要

属性:

  • 标题 -> 类型: 字符串 ,定义:唯一
  • 正文 -> 类型:文本,
  • 图像->类型:字符串,定义:可为空

现在让我们转到 core/blog/data/Post.json 中的 JSON 文件来编写我们的属性。

笔记

我们在 JSON 文件中写入任何属性时都应该遵循规则,有两种类型的配置类型和定义

  • type:是属性的类型,您应该将其编写为文档中指定的 Laravel,您可以从此处检查 Laravel 中的所有类型
  • 定义:用于列修饰符,您也应该将其编写为文档中指定的 Laravel,您可以从此处查看
4901d52c4ce44e2792d2ef670dda87b0

如果你意识到我没有写 required 因为包会自动添加它。

让我们运行单元命令的第二部分

php artisan laragin:unit post –module=blog

运行命令后,它会生成迁移 – 请求 – 资源 – 工厂 – 单元测试 – 等文件,并且它们已完全实现。

让我们看看迁移文件,你会看到所有属性都自动添加了我们在 JSON 文件中指定的配置,魔术,对

fd03f87d353b45fead0ca3fae2d7f6c2

  • 现在让我们运行 migrate command

php artisan migrate

第 7 步:添加 API 路由

添加 Route::apiResource(‘posts’, ‘PostController’); in api.php in core\Blog\routes\api.php

107fb087252643d1879e5a2ab91e9d24

笔记

我们不需要实现 CRUD 方法,它已经在 PostController 的 core\Blog\Controllers\API\PostController 中实现了。

第 8 步:测试

  • 打开 Postman 或您用于测试 API 的任何其他软件
  • 不要忘记放入 header Accept: application/json
  • 让我们先创建一个新帖子
06129aab507c4e20b51d813ff000d6fa

  • 让我们创建另一个帖子,但不包括标题来测试它是否会返回错误
fb171f0ba2b44cdb8249c20bf1e94101

现在你想知道它是如何给我们的 title 属性是必需的,对吧? 让我们看看 core/Blog/Requests 中的 PostRequest 文件,我们指定的所有属性都在文件中并进行了一些验证,Laragine 为我们完成了这项工作。

笔记

您可以在请求文件或任何其他文件中修改所需的任何属性

Resources – unit test – etc…

7ea2cedba1d34edabc3bbabef2907d15

  • 让我们获取所有帖子
3daef908fa1b4edf88762c9e933657ca

  • 让我们更新帖子

在测试更新方法之前,您可能想要更改更新请求(put)中的验证,您可以在 put 方法的 core/Blog/Requests 文件中的 Post Request 中执行此操作

0e92fa750c5b457399e800e20e6d6d62

  • 让我们删除帖子
e0ab364d73af4ef7bc71202fc4d6515e

结论

在本文中,我只是向您展示了 Laragine 包的一个功能,在下一个教程中,我将通过简单的配置来教您如何使用单元测试。

文章来源:智云一二三科技

文章标题:如何在 Laravel in (HMVC) 模式中快速创建完整的 crud API(第1部分)

文章地址:https://www.zhihuclub.com/77361.shtml

关于作者: 智云科技

热门文章

网站地图