云优惠
 云服务器优惠大全

首页    编程语言    在Scala中构建Web API的4大框架介绍

在Scala中构建Web API的4大框架介绍

创建时间:2019-01-08 12:59
浏览量:0
收藏

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


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


优点


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


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


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


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


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


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


缺点


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


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


1


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

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


优点

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

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

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


缺点

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


2


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


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


优点

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

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


缺点

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

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


3


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中的默认库可能不是您要求的最佳集成。


免费领取阿里云1888元代金券大礼包

 

阿里云新老用户均可领取!
自领取后:限时7天使用!

阿里云服务器2折优惠:低至293元/年

 

 

突发性能实例t5 1核1G:293元/年

突发性能实例t5 1核2G:459元/年

突发性能实例t5 2核4G:798元/年

共享型xn4实例1核1G内存:394元/年

共享型n4实例1核2G内存:653元/年

计算网络增强型实例2核4G内存:1566元/年

计算网络增强型实例4核8G内存:2991元/年

点此查看2折活动详情

阿里云高性能云服务器

 

 

网络增强型云服务器:2核4G ¥720元/年

高频应用云服务器:8核16G ¥4109元/年

本地SSD型云服务器:4核16G ¥6218.40元/年

大数据型云服务器:8核32G ¥11375.00元/年

GPU异构云服务器:16核40G ¥15563.00元/年

新用户满立减:每满1000立减50

 

1、到阿里云官网选购产品
2、加入到购物车
3、结算时立享满减

注意:新用户首次购买时必须先加到购物车,然后一起结算才享受此优惠。

腾讯云CVM云服务器22.07元起

 

 

腾讯云1核1G:22.07元/月、794.73元/3年

腾讯云2核2G:36.48元/月、1313.35元/3年

腾讯云2核4G:43.01元/月、1548.5元/3年

腾讯云4核8G:178.5元/月、6426元/3年