完美:服务器端Swift —处理请求

本指南从上一个地方继续讲起。 我们准备处理对我们应用程序的请求。

目前,我们已经在处理对我们应用的GET请求,因为PerfectTemplate添加了路由,以URI响应“ /”。 如果您继续阅读本指南,我们将添加一条新的POST路线,以了解如何进行操作,并为每本指南(一个功能齐全的API)将要构建的内容奠定基础,因此,请开始编写代码!

添加新路线

由于我们在上一指南中已经进行了重构,因此添加路由应该非常简单。

如果您将Xcode用作IDE(集成开发环境)并且至少已经构建了项目一次,则您应该有权使用命令自动完成功能。 在路线文件AppRoutes.swift中 ,在带有初始路线调用的行之后,开始键入route.add ,您应该获得添加新路线的可用方法。

添加新路由最有用的方法是列表中的最后两个。

add(方法:HTTPMethod,uri:字符串,处理程序:Requesthandler)

让我们先看一下最后一个,您可以在其中指定所需的方法 (CONNECT,DELETE,GET,HEAD,OPTIONS,POST,PUT或TRACE), uri应该是字符串 ,最后是指定处理程序,该路线将在何时被调用。

  route.add(方法:.post,uri:“ /”,处理程序:homeHandler) 

添加(方法:HTTPMethod,URIS:[String],处理程序:Requesthandler)

自动完成列表中的最后一个选项是另一个有趣的选项,与上面的选项相同,但是变化很小……您可以指定将由指定的路由处理程序处理的URI数组-该数组应为字符串数组。

  route.add(方法:.post,uris:[“ /”,“ / home”],处理程序:homeHandler) 

当您有多个路由应该具有相同的业务逻辑,或者至少与其他路由具有相同的业务逻辑时,这非常方便。

好的,足够多的聊天,让我们添加一条路由,该路由将对原始URI“ /”上的POST方法作出反应,并使用名为homePostHandler的处理程序处理请求。 您的路线文件现在应如下所示:

添加新路线后,您会遇到一些错误,这是因为尚未创建新的处理程序-很好,我们接下来将其添加。

处理传入的请求

由于新路由也用于“ /” URI,因此将逻辑与上一个路由保存在同一文件中,而我正在谈论homeHandler.swift 。 转到该文件并添加我们的新处理程序(就像已经存在的上一个处理程序一样)

  func homePostHandler(request:HTTPRequest,_ response:HTTPResponse){ 
  } 

为了使Perfect知道您已经完成了对数据的处理并准备显示返回的任何内容,需要在完成后调用response.completed()方法。 为了测试我们的路由是否正确处理,我们将在调用completed()方法之前向处理程序添加一个打印命令。

注意:从一开始就添加它是一个好习惯,这将允许您在添加任何类型的业务逻辑之前测试路由。

  func homePostHandler(request:HTTPRequest,_ response:HTTPResponse){ 
打印(“哦,哦,刚才有人叫/使用POST方法!!”)
response.completed()
}

让我们测试我们的新路线,只是要确保我们没有引入任何错误/错误。 编译并运行您的应用程序,并使用curl或任何REST客户端创建对“ /”的POST请求( 我将使用curl )。

  curl -X POST本地主机:8181 

由于我们没有向响应对象添加任何内容,因此输出应该为空,但是我们应该在控制台中获取该打印内容……

成功!

您刚刚添加了第一条路线,并测试了该路线的有效性。

在下一个指南中,我们将继续并将参数添加到POST调用中,然后将其返回给用户,以确保其正常工作。 直到那时…

玩得开心,继续编码,
罗伯特·B