写点什么

Suave 1.0 发布,一个面向 F#的 Web 服务器和开发库

  • 2016-01-29
  • 本文字数:818 字

    阅读完需:约 3 分钟

近日,Suave 1.0 发布,为.NET 开发带来了一个新的 Web 开发库。Suave 包含一个轻量级的、完全异步的 Web 服务器以及一个描述 HTTP 处理管道的语义模型。Suave 可以运行在多种平台和操作系统上,包括 Windows、OSX、Linux、.NET 和 Mono。虽然可以在任何.NET 语言中使用,但 Suave“连结符(combinators)”和类型是设计用于 F#的。

Suave 的编程模型是借助连结符使用较小的函数创建较大的函数。Suave 维护者 Henrik Feldt 是这样解释的:

连结符是高阶函数,可以用不同的方式组合,达到不同的效果,生成 HTTP 响应。

Suave 有像OK "Hello"notFound这样的连结符及其他许多底层 HTTP 结构,使开发人员可以编写任何种类的 Web 服务。在 Suave 中,我们使用类型WebPart操作函数域,其中type WebPart = HttpContext -async<HttpContext option>

类型option为我们使用 success/fail 语义及解析成不同的路由提供了可能。

我们使用一个名为choose的函数,它接受一个WebPart列表,并按顺序为每个WebPart提供一个HttpContext,直到其中一个WebPart返回Some HttpContextHttpContext中包含已经编码好的响应,服务器将发送给 HTTP 客户端。

我们还使用一个>=>操作符组合WebPart及解析路由。

下面是使用 Suave 实现经典的“Hello World!”示例。该应用程序会使用“Hello World!”响应它收到的所有请求。

复制代码
open Suave
startWebServer defaultConfig (Successful.OK "Hello World!")

下面的例子展示了如何匹配路由以及没有匹配的路由时返回 404 页面:

复制代码
let app : WebApp =
choose[
path "/foo" >=> OK "foo"
path "/bar" >=> OK "bar"
notFound "no handlers found."
]
startWebServer defaultConfig app

Suave 是一个开源项目,托管在 GitHub 上。 Suave 官方网站提供了文档和示例。此外, InfoQ 还对 Henrik Feldt 进行了更广泛的采访,他就 Suave 是什么以及如何使用讲述了更多的细节。

查看英文原文: Release 1.0 of Suave, a Web Server and Development Library for F#

2016-01-29 18:001534
用户头像

发布了 1008 篇内容, 共 388.2 次阅读, 收获喜欢 344 次。

关注

评论

发布
暂无评论
发现更多内容

亚马逊云科技宣布推出三项无服务器服务创新

财见

搭建本地http服务器-打开本地文件

Lemoon Can

notion链接脑图 mac开机自启动服务 打开本地文件的http服务器

未雨绸缪,天翼云云备份护航企业稳健发展

Geek_2d6073

DaVinci Resolve Studio 18:视频编辑和调色的新标准

iMac小白

在使用item_get API时,如何处理重复的商品信息?

技术冰糖葫芦

API 接口

做服务的架构陷阱,你掌握了多少

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟

Dropzone 4 for mac(文件拖拽增强工具)v4.80.4激活版

iMac小白

鹏华基金核心系统完成国产化升级,腾讯云大数据TBDS再拓应用新场景

腾讯云大数据

TBDS

【腾讯云 HAI域探秘】整合腾讯云HAI的ChatGLM模型到NUXT官网:实现智能IM功能

攀登者

从 MLOps 到 LMOps 的关键技术嬗变

百度Geek说

大模型 MLOps 12 月 PK 榜 Prompt LMops

专业统计分析绘图软件:GraphPad Prism 10 激活最新版

mac大玩家j

数据分析工具 Mac软件 数学分析软件

如何最大化利用虚拟主机:实用技巧与建议

一只扑棱蛾子

虚拟主机

MySQL数据库中SQL语句分几类?

小魏写代码

使用 KubeRay 和 Kueue 在 Kubernetes 中托管 Ray 工作负载

字节跳动云原生计算

ray KubeRay

中企出海 | 引领全球税务治理,助力中企出海

用友BIP

中企全球化

文心一言 VS 讯飞星火 VS chatgpt (151)-- 算法导论12.2 7题

福大大架构师每日一题

福大大架构师每日一题

JetBrains PhpStorm 2023 for Mac(PHP集成开发)v2023.3中文激活版

iMac小白

专业视频调色软件达芬奇DaVinci Resolve Studio 18激活中文正式版

胖墩儿不胖y

Mac软件 视频剪辑工具 视频后期处理工具 Mac软件视频编辑

去哪儿如何实现故障率降低65%?技术+管理的数字化度量体系实践

TakinTalks稳定性社区

生产环境质量保障的四大挑战

老张

质量保障 测试右移

【EMNLP 2023】面向垂直领域的知识预训练语言模型

阿里云大数据AI技术

一文详解安全随机数

华为云开发者联盟

安全 华为云 华为云开发者联盟

人工智能 | 计算机如何理解和生成人类语言

测吧(北京)科技有限公司

测试

URL Manager Pro for Mac(浏览器标签管理应用)v6.4.1激活版

iMac小白

低代码正在改变软件开发方式

互联网工科生

软件开发 低代码 JNPF

Macs Fan Control Pro for mac( 电脑风扇控制软件)v1.5.16中文激活版

iMac小白

人工智能的基础概念与原理

测吧(北京)科技有限公司

测试

Solidity之旅(七)单位以及全局变量

BSN研习社

Suave 1.0发布,一个面向F#的Web服务器和开发库_.NET_Pierre-Luc Maheu_InfoQ精选文章