Skip to main content
 Web开发网 » 站长学院 » 浏览器插件

Amazon全新轻量级服务器端Swift框架:Smoke

2021年11月03日5970百度已收录

Amazon全新轻量级服务器端Swift框架:Smoke  轻量级框架 第1张

Amazon Smoke框架是使用Swift语言编写的全新开源轻量级服务器端框架,用于构建类REST或类RPC的服务。它的架构设计强调易于使用,以及请求处理程序偏向纯函数编程的风格。

通过Amazon Smoke创建服务需要三个步骤:

定义处理传入的请求的操作。每个这样的操作是通过一个函数定义的,传入OperationInput和通用的ApplicationContext,并同步或异步地返回OperationOutput,如下面的代码所示:// Synchronous handlerfunc handleTheOperation(input: OperationInput, context: MyApplicationContext) throws -> OperationOutput { return OperationOutput()}// Asynchronous handlerfunc handleOperationAsync(input: OperationInput, context: MyApplicationContext, responseHandler: (SmokeResult<OutputAttributes>) -> ()) throws { let result = OperationOutput() rensponseHandler(.response(attributes))}输入和输出类型必须符合ValidatableCodable协议,该协议可以通过validate函数验证输入和输出字段。

说明如何选择操作处理程序来处理传入的请求。Smoke提供了一个StandardSmoke推荐通过去除线程安全的需求,让该对象变为强类型和不可变,来流化并发的行为。除此以外,它可以是任何类型的。使用上下文可以保证处理程序写为纯函数式的,就是说它们的输出仅仅依赖于它们的输入和传递的上下文。这就让单元测试处理程序变得非常简单,也能向处理程序隐藏开发和部署环境之间的差异。这可以通过上下文传输任何可能引起开发和部署上下文不同的依赖来实现,比如说模拟服务、随机数生成器等等。

Amazon Smoke搭建于Apple的SwiftNIO之上,并和Swift Package Manager集成。你可以通过添加下面的依赖规则到package.swift来引入项目中:

dependencies: [ .package(url: "。它们还包括很多组件,比如数据库访问、会话和凭证管理以及更多的组件。

查看英文原文:Smoke is a New Lightweight Server-side Framework for Swift from Amazon

评论列表暂无评论
发表评论
微信