设为首页 加入收藏

TOP

go语言几个最快最好运用最广的web框架比较(大多数人不了解的特性)(二)
2018-10-28 10:11:14 】 浏览:2023
Tags:语言 最快 最好 运用 广的 web 框架 比较 大多数 了解 特性
rkdown,JSON,JSONP,XML
Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网
MVC Go Web Iris中文网 Go Web Iris中文网 generator Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网
缓存(Caching*) Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网
文件服务器(File Server*) Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网
文件服务器:嵌入到应用程序(File Server: Embedded Into App*) Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网
响应可以在发送之前的生命周期中多次修改(Response can be Modified Many times through lifecycle before sent*) Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网
Gzip Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 (中间件) middleware (中间件)middleware (中间件) middleware
测试框架(Testing Framework*) Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网
Typescript Transpiler Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网
在线编辑(Online Editor*) Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网
日志系统(Logging System*) Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网
维护和自动更新(Maintenance & Auto-Updates*) Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网 Go Web Iris中文网
性能(Performance) ★★★★★ ★★★ ★★ ★★★★★ ★★★★★ ★★★

Go中最着名的“Web框架”并不是真正的框架,这意味着:Echo,Gin和Buffalo并不是真正的(功能齐全的)Web框架但Go社区的大多数人都认为他们是。因此他们认为它们与Iris,Beego或Revel相当,因此,我们也有义务将它们纳入此清单。
除了 Beego 和 Revel 之外,所有上述框架都可以适应任何中间件这是为 net/http 创建的,其中一些可以轻松地和其他人一起完成有一些黑客[甚至痛苦是这里的选择]。

词汇

路由:命名路径参数和通配符(Router: Named Path Parameters & Wildcard)

当您可以将处理程序注册到具有动态路径的路由时。

示例命名路径参数:

"/user/{username}" 匹配 "/user/me", "/user/speedwheel" etc

路径参数username匹配值分别是 mespeedwheel

示例通配符:

"/user/{path *wildcard}" matches to "/user/some/path/here", "/user/this/is/a/dynamic/multi/level/path" etc

path 路径参数的值分别是some/path/herethis/is/a/dynamic/multi/level/path

Iris也支持一种称为宏的功能,可以描述为/user/{username:string}或/user/{username:int min(1)}。

路由:正则表达式(Router: Regex)

当您可以使用带有过滤器的动态路径向具有过滤器的路径注册处理程序时,应该传递一些处理程序以执行处理程序。

示例:

"/user/{id ^[0-9]$}" matches to "/user/42" but not to "/user/somestring"

id路径参数的值为42。

路由:分组(Router: Grouping)

当您可以将公共逻辑或中间件/处理程序注册到共享相同路径前缀的特定路由组时。

示例:

myGroup := Group("/user", userAuthenticationMiddleware) myGroup.Handle("GET", "/", userHandler) myGroup.Handle("GET", "/profile", userProfileHandler) myGroup.Handle("GET", "/signup", getUserSignupForm)
  • /user
  • /user/profile
  • /user/signup

您甚至可以从组中创建子组:

myGroup.Group("/messages", optionalUserMessagesMiddleware) myGroup.Handle("GET', "/{id}", getMessageByID)
  • /user/messages/{id}

路由:以上所有混合无冲突(Router: All the above Mixed Without Conflict)

这是一个先进但有用的功能,我们许多人希望它由路由器或Web框架支持,目前只有Iris在Go世界中支持这一功能。

这意味着/{path *wildcard}/user/{username}/user/static/user/{path*wildcard}之类的东西可以在同一个路由器中注册,它可以正确匹配而不会受到静态路径的冲突(/user/static)或通配符(/{path*wildcard})。

路由:自定义HTTP错误(Router: Custom HTTP Errors)

当您可以为“错误”状态代码注册处理程序时。 错误http状态代码是> = 400状态代码,i.s Not Found 404

示例:

OnErrorCode(404, myNotFoundHandler)

上面的大多数Web框架仅支持404,405和500注册,但像Iris,Beego和Revel这样的功能完全支持任何状态代码甚至任何错误代码(Iris仅支持任何错误)。

100% compatible with net/http (与net/http 100%兼容)

意味着你有:

  • 框架为您提供了直接访问*http.Requesthttp.ResponseWriter的上下文。
  • 一种将net/http处理程序转换为特定框架的Handler类型的方法。

中间件生态系统 (Middleware ecosystem)

当您不必自己用中间件包装每个处理程序时,框架会为您提供一个完整的引擎来定义流,全局或每个路由或每组路由。 i.e Use(middleware), Done(middleware) etc.

类似 Sinatra API (Sinatra-like API)

类似于SinatraAPIRegister在运行时处理程序中用于特定HTTP方法(和路径参数)的路由。

示例:

.Get or GET("/path", gethandler) .Post or POST("/path", postHandler) .Put or PUT("/path", putHandler) and etc.

服务器:自动HTTPS(Server: Automatic HTTPS)

当框架的服务器支持注册和自动续订SSL认证以管理SSL/TLS传入连接(https)时。 最着名的自动https提供程序是letsencrypt

服务器:正常关机 (

首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇go语言的null值问题 下一篇配置supervisor管理beego应用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目