Kanary:基于Kotlin的可扩展RESTful API Web框架

Posted CSDN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kanary:基于Kotlin的可扩展RESTful API Web框架相关的知识,希望对你有一定的参考价值。

作者 | SeunAdelekan

翻译 | Vincent


【译者注】本文主要讲Kanary的安装和依赖等内容,旨在利用高效的方法帮助工程师和开发人员创建基于微服务。以下为译文



License:Apache 2.0 Download:0.9.0 
Code Climate:1 issues


Kanary:基于Kotlin的可扩展RESTful API Web框架


Kanary是一个用于构建可扩展和富有表现力的的RESTful API的Kotlin Web框架,基于Apache 2.0,托管在Github上。Kanary是由Iyanu Adelekan创建,他是目前的项目负责人。


Kanary:基于Kotlin的可扩展RESTful API Web框架


安装


安装资源包含在com.iyanuadelekan.kanary包中,您可以在您的应用程序中通过Maven,Gradle和Ivy来导入这个包。在应用程序中引入以下代码:


Maven


包含Jcenter作为插件库 


Kanary:基于Kotlin的可扩展RESTful API Web框架


将Kanary添加为项目依赖关系


Kanary:基于Kotlin的可扩展RESTful API Web框架


Gradle


Kanary:基于Kotlin的可扩展RESTful API Web框架


Ivy


Kanary:基于Kotlin的可扩展RESTful API Web框架


其他


对于其他用例,您可以从bintray下载jar


特征


  • 表现路由

  • 专注于代码清晰度

  • 支持控制器

  • 包含HTTP助手

  • 完全支持异步中间件

  • 简洁的英语,如“一线”

  • 可用的动作生命周期回调方法


快速开始


这是详细的[项目包](Packages):https://github.com/SeunAdelekan/Kanary#packages


创建一个Kanary应用程序并启动服务器


通过初始化KanaryApp,创建一个Server对象,一个AppHandler实例,将该实例设置为服务器的处理程序并启动服务器在指定的端口上侦听,创建一个简单的Kanary应用程序。


Kanary:基于Kotlin的可扩展RESTful API Web框架


创建控制器


控制器是扩展KanaryController类的实例。下面的类是一个简单的控制器类,不执行任何操作。


Kanary:基于Kotlin的可扩展RESTful API Web框架


创建动作控制器


虽然上述控制器类是正确的,但通常您需要指定控制器中的动作来路由请求。


一个动作是一个控制器函数,它将三个参数作为参数:


  • 一个请求的实例(一个可变的请求对象)

  • 一个HttpServletRequest的实例(一个不可变的请求对象)

  • HttpServletResponse(响应对象)的一个实例


在下面的控制器中显示一个有效的动作:


Kanary:基于Kotlin的可扩展RESTful API Web框架


动作控制器生命周期的回调


在KanaryController中可以声明两个不同的动作生命周期回调。它们分别是:


  • beforeAction 如果声明,则在执行动作之前立即执行

  • afterAction 如果声明,则在执行动作后立即执行


声明这两个回调与在控制器中声明一个函数一样简单:


Kanary:基于Kotlin的可扩展RESTful API Web框架


路由


所有路由由一个或多个指定的路由器完成。路由是KanaryRouter的一个实例:


Kanary:基于Kotlin的可扩展RESTful API Web框架


声明路由路径


Kanary:基于Kotlin的可扩展RESTful API Web框架


以上也可以用:


Kanary:基于Kotlin的可扩展RESTful API Web框架


安装路由器到应用程序


单个路由可以挂载到KanaryApp的一个实例上,如下所示:


Kanary:基于Kotlin的可扩展RESTful API Web框架


可以随时安装无数路由:


Kanary:基于Kotlin的可扩展RESTful API Web框架


中间件


所有的中间件都采用lambda的形式。HttpServletRequest的单个可空的实例被传递给添加到应用程序的每个中间件。


Kanary:基于Kotlin的可扩展RESTful API Web框架


可以随时添加多个中间件:


Kanary:基于Kotlin的可扩展RESTful API Web框架


重要的是,要注意所有中间件以与主应用程序线程并行的非阻塞方式执行。


捆绑中间件


与Kanary捆绑在一起的唯一中间件是“simpleConsoleRequestLogger”。它打印出关于向控制台收到的每个请求的简洁信息。


Kanary:基于Kotlin的可扩展RESTful API Web框架


处理请求和响应


处理请求


在大多数情况下,请求处理通过创建一个HttpServletRequest来完成一个动作响应。这个HttpServletRequest是Java的一个对象,它是Kanary特定的帮助函数。提供的这些附加功能包括:


Kanary:基于Kotlin的可扩展RESTful API Web框架


一个可变请求对象以请求实例的形式显示。HttpServletRequest请求实现,因此具有类似于传递给HttpServletRequest实例拥有的行为和特征。除了上表所示的功能外,传递的请求实例有: 


Kanary:基于Kotlin的可扩展RESTful API Web框架


响应请求


使用HttpServletResponse将一个动作响应发送给客户端。除了此实例暴露的所有特征和行为之外,还可以使用以下Kanary特定的帮助函数:


Kanary:基于Kotlin的可扩展RESTful API Web框架


除“sendFile”之外的所有功能都可以用中缀符号(在Kanary中编写代码的推荐方式)编写。这样可以写出清晰和表现力强的代码来回应客户。这样就可以向客户端发送纯文本消息:



Packages(包)



Dependencies(依赖)


  • Jetty(作为应用服务器引擎):http://www.eclipse.org/jetty/

  • Jackson-databind (对于JSON序列化/反序列化):https://github.com/FasterXML/jackson-databind/blob/master/README.md


Philosophy(原理)


创建Kanary是为了能够用Kotlin编程语言实现稳定且非冗长的RESTful API。


公约与配置


Kanary旨在利用高效的方法帮助工程师和开发人员创建基于微服务的应用程序。对于这种方法,开发人员不会强制约定。实施应用程序的方法由实施者自行决定。


Road map(路线图)


  • 增加测试

  • 创建大量示例应用程序,演示使用Kanary

  • 创建cli工具以支持快速创建Kanary应用程序

  • 添加备份加载功能,更改和保存应用程序文件

  • 管理通知邮件

  • 对于那些希望以MVC为导向的方式使用Canary的模板引擎系统的实现

  • 添加对其他流行应用程序服务器(如Tomcat和Netty)的支持


更多相关内容及原文所涉链接可点击「阅读原文」查看。

以上是关于Kanary:基于Kotlin的可扩展RESTful API Web框架的主要内容,如果未能解决你的问题,请参考以下文章

基于Spring的可扩展Schema进行开发自定义配置标签支持

CSS 简单的可扩展的基于CSS的面包屑

Kotlin 中的泛型

kotlin 注释处理器中的可空类型

Java 8中的Optional 类型与 Kotlin 中的可空类型

经典书 基于H2O的机器学习实用方法:一种强大的可扩展的人工智能和深度学习技术,300页pdf