Vapor4 - Todo应用

797 阅读3分钟

本文翻译自vapor-4-todo-backend

在本文中,您将在Vapor 4中实现Todo-Backend的后端。

前言

Todo-Backend是一个很棒的项目,它提供了用于管理待办事项列表的简单Web API规范。您可以自己实现API,并提供一个端点以了解有关您选择的服务器框架的更多信息(我们将在Vapor 4中使用ServerSideSwift)。

设置好之后,您可以在此处添加测试目标URL,运行测试并实现您的API,直到满足所有测试为止。一个很好的学习机会!

在本教程中,您将学习:

  • 如何使用Todo-Backend并使用TDD满足其规格
  • 如何使用ngrok使本地后端可用
  • 如何配置CORS
  • 如何写路由
  • 如何 CRUD todos
  • 如何处理模型迁移

设置项目

创建 Vapor 项目

仅需几个步骤,即可在您的计算机上具有完全运行的Vapor后端。

➜  SwiftWeb vapor-beta new todo-backend-vapor                                                
Cloning template...
name: todo-backend-vapor
Would you like to use Fluent?
y/n> y
fluent: Yes
Which database would you like to use?
1: Postgres
2: MySQL (beta)
3: SQLite (beta)
4: Mongo (beta)
> 3

在Xcode中打开项目:

  • 生成 xcode 项目
➜  SwiftWeb cd todo-backend-vapor 
➜  todo-backend-vapor git:(master) swift package generate-xcodeproj
open .

在Xcode中添加工作目录:

编辑您的 Run scheme 并启用“Use custom working directory”。将其设置为项目的根目录。在Xcode中运行时,这是必需的,以确保我们的SQLite数据库文件存储在此处。

启用自动迁移

现在,让我们再添加一个步骤来启用自动迁移。 Vapor 的 ORM Fluent 将在启动时尝试迁移您的模型/方案:

等待所有软件包解析完毕,选择Run方案并运行您的项目:

您会注意到 db.sqlite已经创建了。随时使用您选择的数据库客户端(例如TablePlusSQLiteStudio)对其进行检查。

切换到浏览器并打开 http://localhost:8080。它应该告诉你It works! 🎉

设置ngrok

为了使您的本地后端可见并且可用于 todobackend.com,我们将使用 ngrok

步骤如下

$ /Applications/ngrok authtoken {your auth token}

Start ngrok

  • 从现在开始,每当您要创建到本地后端的隧道时,只需键入:
$ /Applications/ngrok http 8080

这将通过ngrok提供的URL使本地端口8080可以访问:

注意:在免费帐户中,只要您停止/启动ngrok,URL就会更改。但这现在不应该困扰我们。

将HTTPS URL复制到浏览器。您应该It works!再次看到。太好了,您的后端现在可以从外部访问🙌

注意: ngrok提供了一个出色的Web界面,您可以在其中跟踪传入的请求。这对于调试非常有用-您可以通过在浏览器中导航到 http://127.0.0.01:4040来打开它。

将您的后端连接到Todo-Backend

接下来,将您的后端连接到Todo-Backend。确保您的Xcode后端仍在运行。

注意:/todos已经在vapor api-template项目中为您提供了端点

  • 运行测试

它能够访问我们的服务器,但所有测试均失败。现在该满足规格了。‍💻