DartVM服务器开发(第八天)--http服务端框架

上一个篇文章我们学习了如何使用WebSocket去进行通信,今天,我们学习http服务端都有什么框架,下面是我收集的一些框架

1. Aqueduct

这是该框架的标志图.png

1.介绍

Aqueduct是一个HTTP Web服务器框架,用于构建用Dart编写的REST应用程序。

2.特点

  • 资源

资源是应用程序通过其HTTP API公开的内容。资源可以是任何东西 - 应用程序中的用户配置文件,南极洲的温度传感器或游戏的高分。例如,GitHub API公开组织,存储库,问题和拉取请求资源; 社交网络API具有配置文件,帖子和用户关系。

资源被组织成集合(例如,所有帖子),对于该集合,可以唯一地标识该集合中的各个资源(例如,单个帖子)。向应用程序发出请求以检索资源的状态或提供所需的资源状态。大多数情况下,资源表示为JSON数组和对象。检索资源时,其JSON表示将编码到响应主体中。当提供所需的资源状态时,客户端在请求主体中发送所需资源状态的JSON表示。

  • 路由

资源由HTTP请求的路径标识。例如,URL http://example.com/organizations标识服务器上的组织资源集合http://example.com。URL http://example.com/organizations/1标识单个组织。

应用程序为其管理的每个资源公开路由。路由是与请求路径匹配的字符串。当请求的路径与路由匹配时,将调用关联的处理程序来处理请求。路径看起来像路径,但有一些额外的语法。例如,路由/organizations将匹配具有路径的请求/organizations。路径/organizations/:id将匹配路径/organizations/1/organizations/2等等。

  • 控制器

控制器是处理请求的对象。例如,控制器可能从数据库中获取行并将它们发送到响应主体中的客户端。另一个控制器可能会验证请求的授权标头的用户名和密码是否有效。

控制器链接在一起以形成一系列要为请求采取的操作。这些链接在一起的控制器称为通道。如果将上述示例链接在一起,则通道将在发送包含数据库行的响应之前检查请求是否已获得授权。

有两种控制器。一个终端控制器上的资源或资源集合执行操作,并且总是发送响应。端点控制器通过返回资源状态或更改资源状态来满足请求。您编写了大多数特定于应用程序的逻辑端点控制器。

中间件控制器花费的请求的动作,但是不负责满足该请求。中间件控制器可以执行许多不同的操作,并且通常可以在许多通道中重用。大多数情况下,中间件控制器会在请求到达端点控制器之前验证某些请求。中间件控制器可以发送请求的响应,这样做可以防止该通道中的任何其他控制器处理请求。

  • 应用渠道

应用程序通道是包含应用程序中所有控制器的对象。它将一个控制器指定为第一个控制器,以接收称为其入口点的每个请求。控制器链接到入口点(直接或可传递)以形成整个应用程序通道。在几乎每个应用程序中,入口点都是路由器; 该控制器将信道分成给定路由的子信道。

  • 服务

服务是一个对象,它封装了复杂的任务或算法,外部通信或将在应用程序中重用的任务。服务对象的目的是为更详细的行为提供简单的界面。例如,数据库连接是服务对象; 数据库连接的用户不知道如何建立连接或如何将查询编码到线路上的详细信息,但它仍然可以执行查询。

服务对象的主要用户是控制器。通过将服务作为参数传递给控制器​​的构造函数,将服务注入控制器。控制器保留对服务的引用,以便在处理请求时可以使用它。

  • 分离

隔离是内存隔离的线程; 在一个隔离物上创建的对象不能被另一个隔离物引用。当应用程序启动时,会生成包含应用程序代码副本的一个或多个隔离专区。这种行为可以跨多个线程有效地“平衡”您的应用程序。

这种结构的好处是每个隔离区都有自己的一组服务,比如数据库连接。这消除了对“数据库连接池”等技术的需求,因为整个应用程序被有效地“合并”。

  • 绑定

请求可能包含标头,查询参数,需要在控制器代码中解析,验证和使用的正文和路径参数。绑定是添加到自动执行此解析和验证的变量的注释。当绑定值无法解析为预期类型或验证失败时,将发送适当的错误响应。

  • 查询和数据模型

应用程序商店信息在数据库中用于持久性 手动编写数据库查询容易出错,并且不会利用在Dart应用程序中非常有价值的静态分析工具。Aqueduct的ORM(对象关系映射)提供易于编写和测试的静态类型查询。

您的应用程序的数据模型是通过创建Dart类来定义的。每个类都映射到一个数据库表,该类的每个属性都映射到该表中的一列。Aqueduct的命令行工具生成数据库迁移文件,用于检测可应用于实时版本化数据库的数据模型中的更改。数据模型也可以表示为JSON对象,以便在应用程序之上构建工具。

  • 授权

OAuth 2.0是一个标准化的授权框架。Aqueduct包含符合规范的OAuth 2.0服务器实现,可以直接集成到您的应用程序中,也可以单独站起来为联合服务提供授权服务器。这个实现很容易定制 - 它可以在不同类型的数据库中存储授权工件(如令牌和客户端标识符)或使用JWT等无状态授权机制。默认实现利用Aqueduct ORM在PostgreSQL中存储工件。

  • 文档

OpenAPI 3.0是HTTP API的标准化文档格式。许多内置的Aqueduct对象支持“自动”文档。特定于您的应用程序的对象可以构建在此之上,以便立即记录您的应用程序以进行每项更改。

2. Jaguar

1.介绍

Jaguar是一个具有MVC、ORM、序列化、身份验证和安全性的完整堆栈服务端框架

2.特点

  • 简洁,简洁,直观

编写优雅的REST API。

  • 调节器

将相关路线分组到班级。

  • 会话管理

使用简单的类似Map的界面读取和更新会话数据。

  • JWT代币

关于JWT令牌的会话。

  • 身份验证和授权

密码验证。
基于Oauth的身份验证(Facebook,Google,Twitter)。

  • 静态类型的ORM

有了支持

  • 关系
  • 预加载
  • 级联
  • 静态文件

提供几乎没有代码的静态文件。

  • 模板引擎= MVC!

模板是静态类型,代码完成和可分析的基于Dart的模板引擎

好了,上面就是当前存在的http服务端框架,后续我会针对这两个框架进行学习,敬请期待!明天见!

如果想继续学习DartVM服务器开发,请关注我,学习更多骚操作!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,639评论 18 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,915评论 2 89
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,366评论 1 92
  • 什么是企业文化?墙报、写文章不是企业文化,企业文化就是把企业写得有味道一点,不要把企业变成赚钱机器。变成赚钱机器就...
    lightair_2017阅读 228评论 0 0
  • 云南是少数民族聚集地,中国的56个少数民族云南就有26个,多样的民族文化和习俗也是云南当地的一大特色。在云南昆明就...
    夜半鸣阅读 221评论 0 1