我正在使用httprouter Go库来实现REST API服务,我决定尝试ServeFiles来提供与我的API相关联的一些模式文件。我注意到它使用Go的方便的内置net/http软件包来提供静态文件。
它的工作方式几乎完美,除了一个nit:RAML文件与内容类型text/plain
一起提供。但是,我注意到,我已经使用application/json
提供了JSON模式文件,因此显然存在某种与静态文件服务相关的MIME类型关联。有没有办法将其配置为检测我的RAML文件,并用内容类型application/raml+yaml
代替它?
我遵循RAML文件的.raml
文件扩展名和JSON模式的.json
惯常惯例。
答案 0 :(得分:2)
是的,有办法做到这一点。 net/http
库使用引擎盖下的mime
库来检测内容类型。特别是,它使用TypeByExtension来确定文件扩展名是否与已知的内容类型相关联。要配置它,只需调用AddExtensionType,例如,在应用启动期间注册静态文件路由的位置。