写点什么

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:001711
用户头像

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

关注

评论

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

28次面试从未被拒,只因学了阿里P8大牛写的这份《Java技术成长笔记》

Java架构之路

Java 程序员 架构 面试 编程语言

肝了一个月,终于完成了24万字的Java面试手册!

码农之家

Java 编程 程序员 互联网 面试

架构实战营 模块一:课后作业

Ahu

架构实战营

线程池 图解

线程池

在小公司“混”了两年,我只认真做了五件事,如今顺利拿到天猫Offer,迈上人生的新台阶!

Java架构追梦

Java 面试 天猫Offer 成长路线图

不是吧?不会多态,你还说自己会Java

学Java关注我

Java 编程 架构 程序人生 技术宅

Android高级工程师进阶学习,架构师必备技能

欢喜学安卓

android 程序员 面试 移动开发

Java多线程与并发系列从0到1全部合集!拿走不送~

钟奕礼

Java 编程 程序员 架构 面试

架构实战营-模块1-微信业务架构&学生管理系统方案

Lane

MemVerge使得大内存应用在 Ice Lake CPU上如虎添翼

Steven Xu

redis 内存 高性能 持久化存储 kvm

架构实战营模块一总结

竹林七贤

Substrate 合约书之合约综述

Patract

智能合约

这份阿里21年最新版Java面试手册简直无敌了,已经助我拿下五个大厂offer!

Java架构之路

Java 程序员 架构 面试 编程语言

架构实战营模块1学习总结

林子钧

学习 架构实战营 模块一

带你全面认识CMMI V2.0(五)——改进

IPD产品研发管理

项目管理 管理 软件 CMMI

MemVerge 和百奥智汇用大内存技术加速癌症和新冠病毒的研究

Steven Xu

内存 高性能 持久化存储 I/O

架构实战营模块1作业

阿体

2021最新拼多多Java面试题(现场五面),全面涵盖Java高级到高并发

钟奕礼

Java 编程 程序员 架构 面试

2021互联网大厂面经最新分享:百度/阿里/蚂蚁(附答案解析)

比伯

Java 架构 面试 程序人生 技术宅

4月17日,HarmonyOS开发者日将于上海启幕

Geek_283163

华为

【业务架构训练营】模块一作业

汪大侠

常垒资本石矛:寻找ToB投资中的「非共识」

ToB行业头条

SaaS tob

Java面试题全部196题合集:涵盖大厂必考的9大技术点

钟奕礼

Java 编程 程序员 架构 面试

模块一:课后作业

冷酷小绵羊

全网疯传!对标阿里P5-P9的知识体系学习路线及阿里内部Java核心知识手册。

Java架构之路

Java 程序员 架构 面试 编程语言

架构实战营模块1作业

林子钧

作业 架构实战营 模块一

ElasticSearch架构及核心概念

五分钟学大数据

ES 4月日更

YouTube视频转MP3音频 (批量、高效、快捷)

科技猫

分享 教程 视频处理 youtube youtube转mp3

2021最新中高阶Android面试题总结,成功入职阿里

欢喜学安卓

android 程序员 面试 移动开发

架构实战

颜培攀

架构实战营

Java-GC概述

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