某个前端项目中需后端返回一系列接口,开始通过结构体序列化返回接送,后来发现每个接口都要写结构体,编译发布二进制比较麻烦,想到之前ng可配置访问文件路径返回json,golang 做静态文件服务器,访问json文件 当做接口 ,但是还带后缀才能访问到,做了简单适配 ,默认路径访问不到的话自动把路径后追加json 去寻找对应的文件 如下:
package main import ( "net/http" "os" ) type HTMLDir struct { d http.Dir } func main() { fs := http.FileServer( HTMLDir{http.Dir("public/") } ) http.Handle("/", http.StripPrefix("/", fs)) http.ListenAndServe(":8000", nil) } func (d HTMLDir ) Open(name string) (http.File, error){ f, err := d.d.Open(name) if os.IsNotExist(err) { // Not found, try with .html if f, err := d.d.Open(name + ".json"); err == nil { return f, nil } } return f, err }
参考:StackOverflow