详情介绍
Highcharts是一个制作图表的纯Javascript类库。
Highcharts主要特性:
1、兼容性:兼容当今所有的浏览器,包括iPhone、IE和火狐等等;
2、对个人用户完全免费;
3、纯JS,无BS;
4、支持大部分的图表类型:直线图,曲线图、区域图、区域曲线图、柱状图、饼状图、散布图;
5、跨语言:不管是PHP、Asp.net还是Java都可以使用,它只需要三个文件:一个是Highcharts的核心文件highcharts.js,还有a canvas emulator for IE和Jquery类库或者MooTools类库;
6、提示功能:鼠标移动到图表的某一点上有提示信息;
7、放大功能:选中图表部分放大,近距离观察图表;
8、易用性:无需要特殊的开发技能,只需要设置一下选项就可以制作适合自己的图表;
9、时间轴:可以精确到毫秒;
下面我们来演示如何使用elton返回Hello, World!,并且添加了一些常用的中间件
package main import ( "github.com/vicanso/elton" "github.com/vicanso/elton/middleware" ) func main() { e := elton.New() // panic处理 e.Use(middleware.NewRecover()) // 出错处理 e.Use(middleware.NewDefaultError()) // 默认的请求数据解析 e.Use(middleware.NewDefaultBodyParser()) // not modified 304的处理 e.Use(middleware.NewDefaultFresh()) e.Use(middleware.NewDefaultETag()) // 响应数据转换为json e.Use(middleware.NewDefaultResponder()) e.GET("/", func(c *elton.Context) error { c.Body = &struct { Message string `json:"message,omitempty"` }{ "Hello, World!", } return nil }) e.GET("/books/{id}", func(c *elton.Context) error { c.Body = &struct { ID string `json:"id,omitempty"` }{ c.Param("id"), } return nil }) e.POST("/login", func(c *elton.Context) error { c.SetContentTypeByExt(".json") c.Body = c.RequestBody return nil }) err := e.ListenAndServe(":3000") if err != nil { panic(err) } }
go run main.go
之后在浏览器中打开http://localhost:3000/则能看到返回的Hello, World!。
路由
elton每个路由可以添加多个中间件处理函数,根据路由与及HTTP请求方法指定不同的路由处理函数。而全局的中间件则可通过Use方法来添加。
e.Use(...func(*elton.Context) error) e.Method(path string, ...func(*elton.Context) error)
e 为elton实例化对象
Method 为HTTP的请求方法,如:GET, PUT, POST等等
path 为HTTP路由路径
func(*elton.Context) error 为路由处理函数(中间件),当匹配的路由被请求时,对应的处理函数则会被调用
路由示例
elton的路由使用chi的路由简化而来,下面是两个简单的示例。
// 带参数路由 e.GET("/users/{type}", func(c *elton.Context) error { c.BodyBuffer = bytes.NewBufferString(c.Param("type")) return nil }) // 复合参数 e.GET("/books/{category:[a-z-]+}-{type}", func(c *elton.Context) error { c.BodyBuffer = bytes.NewBufferString(c.Param("category") + c.Param("type")) return nil }) // 带中间件的路由配置 e.GET("/users/me", func(c *elton.Context) error { c.Set("account", "tree.xie") return c.Next() }, func(c *elton.Context) error { c.BodyBuffer = bytes.NewBufferString(c.GetString("account")) return nil })
中间件
简单方便的中间件机制,依赖各类定制的中间件,通过各类中间件的组合,方便快捷实现各类HTTP服务,简单介绍数据响应与出错处理的中间件。需要注意,elton中默认不会执行所有的中间件,每个中间件决定是否需要执行后续处理,如果需要则调用Next()函数,与gin不一样(gin默认为执行所有,若不希望执行后续的中间件,则调用Abort)。
responder
HTTP请求响应数据时,需要将数据转换为Buffer返回,而在应用时响应数据一般为各类的struct或map等结构化数据,因此elton提供了Body(interface{})字段来保存这些数据,再使用自定义的中间件将数据转换为对应的字节数据,elton-responder提供了将struct(map)转换为json字节并设置对应的Content-Type,对于string([]byte)则直接输出。
package main import ( "github.com/vicanso/elton" "github.com/vicanso/elton/middleware" ) func main() { e := elton.New() // 对响应数据 c.Body 转换为相应的json响应 e.Use(middleware.NewDefaultResponder()) getSession := func(c *elton.Context) error { c.Set("account", "tree.xie") return c.Next() } e.GET("/users/me", getSession, func(c *elton.Context) (err error) { c.Body = &struct { Name string `json:"name"` Type string `json:"type"` }{ c.GetString("account"), "vip", } return }) err := e.ListenAndServe(":3000") if err != nil { panic(err) } }
error
当请求处理失败时,直接返回error则可,elton从error中获取出错信息并输出。默认的出错处理并不适合实际应用场景,建议使用自定义出错类配合中间件,便于统一的错误处理,程序监控,下面是引入错误中间件将出错转换为json形式的响应。
package main import ( "github.com/vicanso/elton" "github.com/vicanso/elton/middleware" "github.com/vicanso/hes" ) func main() { e := elton.New() // 指定出错以json的形式返回 e.Use(middleware.NewError(middleware.ErrorConfig{ ResponseType: "json", })) e.GET("/", func(c *elton.Context) (err error) { err = &hes.Error{ StatusCode: 400, Category: "users", Message: "出错啦", } return }) err := e.ListenAndServe(":3000") if err != nil { panic(err) } }
下载地址
人气源码
相关文章
-
Java轻量级类隔离框架 SOFAArk Project v2.2.14
SOFAArk 是一款基于 Java 实现的动态热部署和轻量级类隔离框架,由蚂蚁集团开源贡献,主要提供应用模块的动态热部署和类隔离能力。欢迎需要的朋友下载使用...
-
SpringBlade微服务开发平台 v4.2.0
SpringBlade 是一个由商业级项目升级优化而来的SpringCloud分布式微服务架构、SpringBoot单体式微服务架构并存的综合型项目,采用Java8 API重构了业务代码,完全遵循阿里巴...
-
Diboot轻代码开发平台 v2.11.0
Diboot轻代码开发平台是一个面向开发人员的低代码开发平台,将重复性的工作自动化,提高质量、效率、可维护性...
-
RuoYi-activiti工作流平台源码 v4.1
RuoYi-activiti是一款以若依开源权限管理系统为基础开发平台并集成了activiti框架完成的工作流系统,旨在打造集流程设计、流程部署、流程执行、任务办理、流程监控于一体的...
-
RuoYi若依权限管理系统 v4.7.9
RuoYi若依权限管理系统是一个基于SpringBoot的权限管理系统,代码易读易懂、界面简洁美观, 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖,喜欢的朋友快来下载...
-
Java Struts2漏洞复现工具
今天给大家分享Java Struts2漏洞复现工具,喜欢的朋友快来下载体验吧...
-
java操作excel的jar包(jxl.jar包 源码)
jxl.jar是通过java操作excel表格的工具类库,能够修饰单元格属性,是由java语言开发而成的,接下来通过本文给大家介绍java操作excel的jar包(jxl.jar包 源码),喜欢的朋友快...
-
springboot整合QuartJob实现定时器实时管理源代码
Quartz是一个完全由java编写的开源作业调度框架,形式简易,功能强大,,下面给大家分享springboot整合QuartJob实现定时器实时管理源代码,感兴趣的朋友快来下载体验吧...
-
SOFABoot开源框架 v3.24.0
SOFABoot 是蚂蚁集团开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,上下文隔离,类隔离,日志空间隔离等等能力...
-
基于SSM的应急资源管理系统源码 v1.0
应急资源管理系统用的是是比较流行的SSM和前端JSP技术,用它来创建使用脚本语言,结合HTML代码来制作动态 网页,欢迎需要的朋友下载使用...
下载声明
☉ 解压密码:www.jb51.net 就是本站主域名,希望大家看清楚,[ 分享码的获取方法 ]可以参考这篇文章
☉ 推荐使用 [ 迅雷 ] 下载,使用 [ WinRAR v5 ] 以上版本解压本站软件。
☉ 如果这个软件总是不能下载的请在评论中留言,我们会尽快修复,谢谢!
☉ 下载本站资源,如果服务器暂不能下载请过一段时间重试!或者多试试几个下载地址
☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持!
☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。
☉ 本站提供的Highcharts(JavaScript图表库) v12.0.2资源来源互联网,版权归该下载资源的合法拥有者所有。