`
淘气天空lc
  • 浏览: 48358 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GoLang adapter

 
阅读更多

看了下gopush的代码,被它的简洁震惊到了。。

http server  writed by golang

 

package main

import (
	"net/http"
	"fmt"
	"handler"
)

//golang adapter //interface  func(ResponseWriter, *Request)
func ErrorHanler(f func(ResponseWriter,*Request)) http.HandlerFunc {
	return func(w ResponseWriter,r *Request){
		err := f(w,r)
		if err!= nil {
		  http.Error(w,err.Error(),http.StatusInternalServerError)
		}
	}
}
func errorHandler(f func(http.ResponseWriter, *http.Request) error) func(http.ResponseWriter,*http.Request) {
	return func(w http.ResponseWriter, r *http.Request) {
		err := f(w, r)
		if err != nil {
			http.Error(w, err.Error(), http.StatusInternalServerError)
		}
	}
}

func betterHandler(w http.ResponseWriter, r *http.Request) error {
	fmt.Println("better Hanlder")
	return nil
}
func main() {
	fmt.Println(http.Dir("webapp"))
	http.Handle("/css/",http.FileServer(http.Dir("webapp")))
	http.Handle("/js/",http.FileServer(http.Dir("webapp")))
	http.HandleFunc("/login/",handler.GetLoginHanlder())
	http.HandleFunc("/admin/",handler.GetAdminHanlder())
	http.HandleFunc("/ajax/",handler.GetAjaxHanlder())
	http.HandleFunc("/",errorHandler(betterHandler))  // use adapter
	http.ListenAndServe(":8090",nil)

}

 

分享到:
评论

相关推荐

    golang最好用的权限控制库casbin使用实例.pdf

    标题和描述提到的“golang最好用的权限控制库casbin使用实例”涵盖了关于Go语言中的Casbin库的使用示例。Casbin是一个强大的、易于使用的开源库,用于访问控制(例如,基于角色的访问控制 RBAC、基于属性的访问控制 ...

    go-paginator:在Golang中实现分页的一种简单方法

    分页器 一种在Golang中实现分页的简单方法。用法 package mainimport ( "fmt" "github....

    mongodb-adapter:Casbin的MongoDB适配器

    // Initialize a MongoDB adapter and use it in a Casbin enforcer: // The adapter will use the database named "casbin". // If it doesn't exist, the adapter will create it automatically. a , err := ...

    设计模式Golang实现《研磨设计模式》读书笔记.zip

    设计模式Golang实现《研磨设计模式》读书笔记Go语言设计模式Go语言设计模式的实例代码创建模式工厂简单模式(Simple Factory)工厂方法模式(工厂方法)抽象工厂模式(Abstract Factory)创建者模式(Builder)原型...

    pattern-guidance, Design pattern guide (PHP、Golang implementation).zip

    结构型模式涉及如何组合对象和类,例如适配器模式(Adapter)、装饰器模式(Decorator)和代理模式(Proxy)。行为型模式则关注对象间交互和职责分配,如策略模式(Strategy)、观察者模式(Observer)和责任链模式...

    设计模式实现(Java、C++、Golang)-DesignPattern.zip

    - **结构型模式**(Structural Patterns):包括适配器(Adapter)、桥接(Bridge)、装饰(Decorator)、组合(Composite)、外观(Facade)、享元(Flyweight)和代理(Proxy)。这类模式关注如何组织类和对象以...

    gocloak:golang keycloak客户端

    Gocloak Golang Keycloak API程序包该客户端基于: 如果您有问题或者提出问题,或来进入通道 如果您正在使用echo框架,请查看 基准: : 贡献(在制品) 变更日志v7: 突破性变革在音频声明中增加了对数组值的支持...

    rethinkdb-adapter:用于Casbin https的RethinkDB适配器

    go get github.com/adityapandey9/rethinkdb-adapter 简单的例子 package main import ( "os" r "gopkg.in/gorethink/gorethink.v3" "github.com/casbin/casbin" "github....

    webhook_adapter

    webhook_adapter 一个简单的Web服务器,用于向仅公开“正常”(即,轮询)API的网站添加Webhook功能。 它通过轮询目标API并仅在目标API返回某个响应时才将请求发送到您的服务器来工作。 它被开发为允许在任务完成时...

    golang-clean体系结构

    "Golang-Clean架构"是一种在Go语言中实现软件设计模式的实践,它借鉴了著名的"Clean Architecture"原则,旨在创建可维护、可扩展且易于测试的代码。Clean Architecture的核心思想是将应用程序的业务逻辑与外部依赖...

    从AlertManager接收HTTP Webhook通知,并将其插入到Elasticsearch索引中以进行搜索和分析-Golang开发

    alertmanager2es alertmanager2es从AlertManager接收HTTP Webhook通知,并将其插入到Elasticsearch索引中以进行搜索和分析。 它作为守护程序运行。 ... 它作为守护程序运行。 警报作为警报组存储在Elasticsearch中。...

    grimoire:golang的数据库访问层

    它当前支持MySQL,PostgreSQL和SQLite3,但是可以使用Adapter接口轻松实现自定义适配器。 特征: 查询生成器关联预加载结构样式创建和更新变更集样式创建和更新使用变更集进行内置验证多适配器支持记录仪动机common...

    Aryzath:Aryzath只是一个龙的名字,但是这个回购全是关于使用我最喜欢的语言Google的Go语言(Golang)实现的DESIGN PATERNS

    在Golang中,适配器模式(Adapter)、装饰器模式(Decorator)、代理模式(Proxy)、桥接模式(Bridge)、组合模式(Composite)和外观模式(Facade)是常见的结构型模式。比如,适配器模式允许不同接口的类协同工作...

    design-patterns:golang的设计模式

    func NewAdapter(adaptee *Adaptee) *Adapter { return &Adapter{adaptee: adaptee} } ``` 6. **观察者模式**:观察者模式定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会...

    gotk3adapter:包含gotk3的适配器和接口,以便进行测试

    gotk3是Go语言(Golang)中的一个第三方库,它提供了对GTK+ 3(一个广泛使用的GUI库)的绑定,使得开发者可以用Go来创建图形用户界面。 适配器模式在这里的作用是将gotk3库的API转换为适合测试的接口。在软件工程中...

    Kiara是Phoenix Phoenix SubSub的Go等效项,它使Go应用程序彼此之间可以轻松进行通信。-Golang开发

    示例基本用法自定义编解码器(WATSON×Kiara)NATS适配器聊天基本用法(带有Redis后端)包main import(“上下文”“ fmt”“ github.com/genkami/kiara”适配器“ github.com/genkami/kiara/adapter / redis“” ...

    JAVA设计模式(中文)

    结构型模式涉及到如何组合对象和类,以形成更大的结构,例如适配器模式(Adapter)、装饰器模式(Decorator)、代理模式(Proxy)和桥接模式(Bridge)。这些模式有助于解决不同组件之间的兼容性问题,使系统更易于...

    2021云原生社区各城市meetup论坛PPT大合集(共八期40份).zip

    Apache SkyWalking Adapter for HPA Chaos Mesh让应用与混沌在 Kubernetes 上共舞 K8S在UCloud内部的应用 02-北京 服务网格在金融行业的大规模落地实践 云原生分布式存储解决方案实践 云原生下的可观察性 Apache ...

    logspout-kafka:Logspout适配器,用于将Docker容器日志写入Kafka主题

    logspout-kafka 一个适配器,用于将Docker容器日志写入主题。用法将container-logs作为Docker容器日志的Kafka主题,我们可以使用logspout 将所有消息定向到... Golang的包用于模板化,其中可用于模板化的模型是 。 以下

    todo:待办事项应用程序-六角形建筑演示

    它使用了六角形架构(Port and Adapter Architecture),这是一种设计模式,旨在确保软件组件之间的松耦合,提高系统的可测试性和可维护性。六角形架构的核心思想是将业务逻辑(核心领域)与外部世界(如用户界面、...

Global site tag (gtag.js) - Google Analytics