某个前端项目中需后端返回一系列接口,开始通过结构体序列化返回接送,后来发现每个接口都要写结构体,编译发布二进制比较麻烦,想到之前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
}
参考:*