Browsed by
标签:echo

Echo系列教程 — 定制篇6:自定义 Server 相关,替换或扩展默认的 Server

Echo系列教程 — 定制篇6:自定义 Server 相关,替换或扩展默认的 Server

这是定制篇的最后一节,讲解 Server 的自定义。 默认 Server 通常情况下,Echo 通过如下方式启动一个 HTTP Server: e := echo.New() e.GET(“/”, func(c echo.Context) error { return c.String(http.StatusOK, “Hello, World!”) }) e.Logger.Fatal(e.Start(“:2020”)) 我们打开源码一探究竟: // Start starts …

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo系列教程 — 定制篇5:自定义 HTTP Error Handler,让 HTTP 错误处理更友好

Echo系列教程 — 定制篇5:自定义 HTTP Error Handler,让 HTTP 错误处理更友好

Echo 倡导通过从中间件和 Handler 返回错误来进行集中式 HTTP 错误处理。集中式错误处理程序使我们能够从统一位置将错误记录到外部服务,并向客户端发送自定义的 HTTP 响应。本节一起学习如何定制化,进行集中式错误处理。 默认的错误处理 在定制篇 4 中,我们讲到了 Render。如果在 Handler 中调用了 Render,但是并没有给 Echo.Renderer 赋值或其他原因,导致出错,页面看到的信息如下: { “message”: “Internal S…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo系列教程 — 定制篇4:自定义 Renderer,增强或替换模板引擎

Echo系列教程 — 定制篇4:自定义 Renderer,增强或替换模板引擎

Render,顾名思义,要进行页面渲染。Go 语言不但自带有强大的 http 库,还自带了 HTML 模板引擎。Echo 框架对模板引擎进行了一些额外处理,并提供了给用户自定义页面渲染的接口。本文就相关问题进行探讨。 模板渲染 Echo 框架的 Context 接口提供了下面的方法进行页面渲染: // echo 包中 Context 接口的方法 Render(code int, name string, data interface{}) error 其中,code 是 HT…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo系列教程 — 定制篇3:自定义 Logger,用你喜欢的日志库

Echo系列教程 — 定制篇3:自定义 Logger,用你喜欢的日志库

在知识星球简书项目中,我们分析对比了目前的一些日志库。虽然 Go 标准库有一个 log,但功能有限,所以才出现了很多第三方的日志库。在 用 Go 实现一个简书 8:日志记录和优秀库的学习 中,我们得出结论,推荐大家使用 zerolog。现在我们就将 zerolog 集成进 Echo 框架中。 Echo 默认的 Logger Echo 日志记录的默认格式是 JSON,可以通过修改标头来更改,即 Echo#Logger.SetHeader(io.Writer)。 Log Head…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo 系列教程 — 定制篇2:自定义 Validator,进行输入校验

Echo 系列教程 — 定制篇2:自定义 Validator,进行输入校验

上一篇讲 Binder 时提到,参数自动绑定和校验是 Web 框架很重要的两个功能,可以极大的提升开发速度,并更好的保证数据的可靠性(服务端数据校验很重要)。本节,我们就一起看看如何自定义 Echo 的表单校验功能。 不同于 Binder,Echo 并没有内置数据校验的能力,也就是没有默认的 Validator 实现。然而,你可以很方便的集成第三方的数据校验库。跟 Binder 类似,Echo 提供了一个 Validator 接口,方便将第三方数据校验库集成进来。 Valid…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo 系列教程 — 定制篇 1:自定义 Binder,处理 Request 数据绑定

Echo 系列教程 — 定制篇 1:自定义 Binder,处理 Request 数据绑定

Web 开发,数据获取和校验是两个最基本的功能。在数据获取时,我们可以通过标准库的 *http.Request 提供的相关功能进行获取。然而这样效率是很低,重复工作较多,而且考虑到数据自动校验,我们更应该做到自动绑定。 在讲述 Echo 的 Binder 前,先探讨一下客户端数据一般通过什么方式发送给服务端的。 客户端如何传递数据给服务端? 这个问题其实对大部分人来说太简单了,然而,很多客户端的人却不清楚。工作中,我接触过不少客户端的人,对于数据怎么传递给服务端,他们是没有概…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo 系列教程 — 定制篇 0:让 Echo 更强大、更好用

Echo 系列教程 — 定制篇 0:让 Echo 更强大、更好用

一个强大的框架,一定是可以定制的,或者说可以扩展,能够根据用户自己的需求进行改变、增强,甚至某些功能的替换。作为一个强大的框架,Echo 必然也是可以定制、可以扩展的。本篇起,我们一起探讨如何对 Echo 框架进行定制或扩展,打造成符合你个性需求的框架。 定制化主要包含如下一些方面: 自定义 Binder,用来处理 Request 数据绑定 自定义 Validator,用来处理表单验证 自定义 Logger,用你喜欢的日志库 自定义 Renderer,增强或替换模板引擎 自定…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo 系列教程 — 基础篇:通过一个例子串联各特性

Echo 系列教程 — 基础篇:通过一个例子串联各特性

通过前面的介绍,相信对 echo 有了一个初步的认识。本文我们通过一个简单的登录页面来串联 echo 的相关特性。因为该文主要关注各个特性,所以在目录结构和代码组织方面很随意。 本节最终效果 1)登录页面 2)登录失败 3)登录成功 main 函数骨架 使用 echo 框架,在程序入口处一般包含如下内容: func main() { // 创建 echo 实例 e := echo.New() // 配置日志 configLogger(e) // 注册静态文件路由 e.Stat…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo 系列教程—基础篇:Echo 核心亮点介绍

Echo 系列教程—基础篇:Echo 核心亮点介绍

在 Echo 的官网的首页,列出了 9 个核心功能或亮点。我这里将它说成是亮点(也许并不一定都比其他框架更好)。 一、优化的路由 高度优化的 HTTP 路由,动态内存分配为零,可对路由进行优先级排序。 这一点从上一篇:[搭建 Echo 开发环境](基础篇:搭建 Echo 开发环境.md) 可以看到。 Echo 路由基于 radix tree ,查询速度非常快。路由使用 sync pool 来重用内存,实现无 GC 开销下的零动态内存分配。 路由的注册和使用方式 各大框架路由的…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo系列教程—基础篇:搭建 Echo 开发环境

Echo系列教程—基础篇:搭建 Echo 开发环境

工欲善其事必先利其器。我们先搞定 Echo 环境。 Go 开发环境 这个系列基于 Go1.13.3。 安装 Go 的方式有很多,可以在这里 https://studygolang.com/dl 下载对应操作系统的版本。我自己比较喜欢通过源码安装。我将我的方式告诉大家。(Windows 环境比较建议直接下载对应的包进行安装 https://studygolang.com/dl/golang/go1.13.3.windows-amd64.msi) 下载源码 在你本地某个目录(比如…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...