服务器端Swift — MVC

我是全栈开发人员。 我的大多数服务器端应用程序都是用.NET(ASP.NET Web API,ASP.NET MVC)编写的。 但是我在副项目Vcoin上花了最后几个星期。 这是用Swift编写的非常简单的iOS应用程序。 我认为花点时间弄清楚如何在Swift中创建服务器端应用程序将是很棒的。 我已经阅读了一些很棒的文章和对该主题的介绍。 您可以在下面找到其中一些:

顶级服务器端Swift框架与Node.js的基准测试

编辑10月7日:结帐我的后续活动:Linux基准(Ubuntu)

medium.com

顶级服务器端Swift框架的当前功能和优势

尽管Server-Side Swift在我眼中已经可以投入生产了,但我知道很难识别从哪里开始或……

medium.com

服务器端Swift框架比较

Swift已经问世了一段时间,它正在成为越来越有吸引力的解决方案,不仅适用于移动设备,而且还适用于…

www.netguru.co

阅读这些文章后,我决定选择速度快且功能丰富的Perfect。 但是,在任何地方都找不到如何在Swift / Perfect中构建服务器端生产应用程序的示例。 如何将应用程序划分为某些层。 在哪里放置业务逻辑,验证,模型,数据访问等。因此,我根据对ASP.NET Core MVC的经验,决定构建一些简单的应用程序。 在本文中,我将重点介绍MVC模式。 在接下来的文章中,我将介绍数据访问(使用一些ORM框架),验证,授权等。


MVC的基本思想是通过控制器和视图从用户界面中分离内部数据模型。

服务器端API中的MVC模式:

  • 模式 -应将实体保留在数据库中
  • 提示 -API中的这一层不太明显,没有向用户呈现的具有视图的HTML / Storyboard文件,但是用户会看到其他东西-由我们的API(控制器)生成的JSON,对我而言,JSON是View层
  • 控制器-与业务逻辑一起使用,当然,拥有轻巧的控制器并将真实的业务逻辑转移到比控制器(如服务)更可重用的组件上将是很棒的。

我的模型很简单。 我有两个类,用于存储有关任务和用户的信息。

现在,当我想添加一个新控制器时,我将不得不使用控制器实现创建一个新的Swift文件,并在DependencyContainer扩展中在容器中注册一个新控制器,并将其添加到resolveAllControllers方法的列表中。 当Swift将为自省引入更广泛的方法时,应该删除第二步。


Github仓库和源代码(分支: mvc-pattern ):

mczachurski / TaskServerSwift

TaskServerSwift –演示项目,其中包含用Swift编写的服务器端代码。

github.com