欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

golang文件服务器返回json接口

程序员文章站 2022-05-20 09:26:36
...

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

 参考:*