Scala中构建Web API的4大框架

Posted 金融大数据分析应用

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala中构建Web API的4大框架相关的知识,希望对你有一定的参考价值。

Scala中构建Web API的4大框架

 Scala中构建Web API的4大框架。

      Scala是一种强大的语言,随着大数据的火爆很快就成为许多开发人员的最爱。然而,语言只是一个起点-并非每个函数都将由语言核心覆盖。Scala生态圈还创建了一些厉害的框架。接下来看看Scala的4个强大WEB开发框架以及其优点和缺点。框架的最佳选择总是应符合您特定项目的要求——因此,根据您自己的项目要求决定最适合您的项目。

Play Framework

——Java和Scala的高速Web框架

Play Framework是一个开源的Scala框架,于2007年首次发布。它目前由Lightbend,Zengularity及其用户开发人员社区开发。该框架的核心功能基于利用JVM及其相关库来构建RESTful应用程序。它目前被一些相当大的名称网站使用,包括LinkedIn,三星的IoT Artik平台和教育网站Coursera。Play 2.x是Play的当前版本,已在开发中取代了Play 1。

Scala中构建Web API的4大框架

优点

1. 与JVM密切相关,因此,Java开发人员会发现它很熟悉且易于使用。

2. 广泛支持各种工具集和IDE系统。

3.它完全基于函数式编程概念,并促进了API优先的RESTful设计实践。

4.Play 2是被动的,允许并行远程呼叫。这意味着它适用于WebSockets和其他相关的以服务器为中心的方法。

5.它为资产汇编、格式处理、数据库集成等提供了广泛的框架支持结构

6.Play是开源的,它使采取者获得更高的安全性和持续审查的代码库。

缺点

1.社区中有许多很棒的插件,当然,但它们的稳定性和实用性并不总能得到保证。

2.Play 2使用SBT构建系统。虽然它非常强大,但有些人对使用implicits,通配符导入以及其他使基础设施开发和集成极其困难的“怪癖”提出了担忧。


Finch

——用于构建Finagle HTTP服务的Scala组合器库

Finch是一个HTTP原语的模块化系统,它协同工作以形成HTTP API。整个框架以可组合性的概念为中心,因此,它是一个高度模块化、可定制的系统。“Finch是Finagle顶层的一层纯功能基本块,用于构建可组合的HTTP API。它的任务是为开发人员提供简单而强大的HTTP原语,使其尽可能接近裸机Finagle API。”

Scala中构建Web API的4大框架

优点

1.Finch利用功能块来构建其框架,因此它非常模块化。

2.话虽如此,它提供了一些相当强大的HTTP原语,这使其非常适合快速开发和测试。因此,Finch非常适合小型项目和初创公司。

3.由于其模块化的性质,它对于各种系统来说非常快速且功能强大。

缺点

1.主要缺点在于,其结构化更多是最小单位的实现,虽然允许进一步的实现和开发迭代,但不被视为全栈解决方案。


Akka HTTP

——Akka HTTP模块在akka-actor和akka-stream之上实现完整的服务器和客户端HTTP堆栈

Akka HTTP是Scala的高度模块化和极其强大的Akka实现。它是在“框架”中发展创建的,其中预先形成的菜单和功能指引。Akka HTTP被创建为“非框架”形式,提供了许多开发工具,而不会强迫开发人员做出任何选择。正如文档所描述的那样,“它不是一个Web框架,而是一个更通用的工具包,用于提供和使用基于HTTP的服务。虽然与浏览器的交互当然也在范围内,但它并不是Akka HTTP的主要关注点。”

Scala中构建Web API的4大框架

优点

1.Akka HTTP的最大好处是它与Akka功能集成在一起。与Akka一样,它支持许多可以执行并行命令和高级计算处理的系统。

2.Akka HTTP拥有强大的开发人员和贡献者支持,所有这些都在Lightbend下进行。此外,它还具有出色的文档和易于理解的支持中心。

缺点

1.Akka HTTP比这个前面2个实现方式都要慢,因此,虽然它可以有效扩展,但它已经开始落后了。

2.Lightbend是一个伟大的社区,但是相对于其他社区来说,陷入单一供应商可能会令人十分担忧。供应商锁定可能很昂贵且难以破解,因此在采用该解决方案之前应考虑这点。


Chaos

——用于在Scala中编写REST服务的轻量级框架

Chaos是Mesosphere的框架。它专为RESTful开发而设计,也是开发人员之前在Java Framework空间中使用Dropwizard和Twitter Commons的经验之谈。他们将Chaos设计为Play的简化版。Chaos指的是在希腊创世神话中,宇宙创造之前的无形或虚无状态。同样,Chaos(框架)先于创建服务“宇宙”。

优点

1.Chaos易于使用,特别是对于那些熟悉使用Scala的用户来说。

2.它所使用的所有库都经过了充分测试和良好支持,提供了大量的文档和知识库,可用于测试,迭代和开发。

缺点

1.不幸的是,Chaos本质上是一个轻量级框架,虽然它做了一些有趣的事情,但它从根本上受到这种方法的限制。

2.正如创作者所说,它确实做得很好-REST。如果您没有构建RESTful服务,或者您正在构建一个必须集成一些“怪癖”设计的服务,那么Chaos中的默认库可能不是您要求的最佳集成。