前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >组件分享之后端组件——用于构建 Go HTTP 服务的轻量级、惯用且可组合的Web路由器chi

组件分享之后端组件——用于构建 Go HTTP 服务的轻量级、惯用且可组合的Web路由器chi

作者头像
cn華少
发布2022-06-27 10:19:05
6890
发布2022-06-27 10:19:05
举报
文章被收录于专栏:IT综合技术分享

组件分享之后端组件——用于构建 Go HTTP 服务的轻量级、惯用且可组合的Web路由器chi

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

内容

本节分享一个用于构建 Go HTTP 服务的轻量级、惯用且可组合的Web路由器chi,它特别擅长帮助您编写大型 REST API 服务,这些服务可以随着项目的增长和变化而保持可维护性。chi基于 Go 1.7 中引入的新context包构建,用于处理处理程序链中的信号、取消和请求范围的值。

该项目的重点是寻找一种优雅而舒适的设计来编写 REST API 服务器,该设计是在为我们的公共 API 服务提供支持的 Pressly API 服务开发期间编写的,该服务反过来为我们所有的客户端应用程序提供支持。 chi 设计的主要考虑因素是:项目结构、可维护性、标准 http 处理程序(仅限 stdlib)、开发人员生产力以及将大型系统解构为许多小部分。核心路由器github.com/go-chi/chi非常小(小于 1000 LOC),但我们还包含了一些有用/可选的子包:middlewarerenderdocgen。我们希望你也喜欢它!

image.png 特征

  • 轻量级- 在 ~1000 LOC 中用于 chi 路由器
  • 快速- 是的,请参阅基准
  • 100% 兼容 net/http - 使用生态系统中任何兼容的 http 或中间件 pkgnet/http
  • 专为模块化/可组合 API 设计- 中间件、内联中间件、路由组和子路由器安装
  • 上下文控制- 建立在新context包之上,提供价值链、取消和超时
  • 强大的 - Pressly、Cloudflare、Heroku、99Designs 和许多其他公司的生产(见讨论
  • 文档生成-docgen自动生成从您的源到 JSON 或 Markdown 的路由文档
  • Go.mod 支持- 从 v5 开始,支持 go.mod(请参阅CHANGELOG
  • 没有外部依赖- 普通 ol' Go stdlib + net/http

具体使用方式如下: 1、安装包

代码语言:javascript
复制
go get -u github.com/go-chi/chi/v5

2、使用

代码语言:javascript
复制
package main

import (
    "net/http"

    "github.com/go-chi/chi/v5"
    "github.com/go-chi/chi/v5/middleware"
)

func main() {
    r := chi.NewRouter()
    r.Use(middleware.Logger)
    r.Get("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("welcome"))
    })
    http.ListenAndServe(":3000", r)
}

更多使用案例

更多使用方式,可以参考官方提供的文档说明

本文声明:

知识共享许可协议

本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 组件分享之后端组件——用于构建 Go HTTP 服务的轻量级、惯用且可组合的Web路由器chi
    • 背景
      • 组件基本信息
        • 内容
        相关产品与服务
        API 网关
        腾讯云 API 网关(API Gateway)是腾讯云推出的一种 API 托管服务,能提供 API 的完整生命周期管理,包括创建、维护、发布、运行、下线等。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档