2016-08-13 4 views
1

Я использую библиотеку httprouter Go для реализации службы REST API, и я решил попробовать ServeFiles для обслуживания некоторых файлов схемы, связанных с моим API. Я отмечаю, что он использует удобный в своем классе встроенный пакет net/http Go Go Go для обслуживания статических файлов.Как обслуживать статический файл с httprouter с правильным типом MIME?

Он работает почти отлично, за исключением одного nit: файлы RAML подаются с типом контента text/plain. Я отмечаю, однако, что файлы схемы JSON, которые я получил с application/json, так ясно, что существует некоторая ассоциация типа MIME со статической файловой службой. Есть ли способ настроить его для обнаружения моего RAML-файла как такового и использовать его, скажем, с типом контента application/raml+yaml?

Я следую обычному соглашению .raml расширений файлов для файлов RAML и .json для схем JSON.

ответ

2

Да, есть способ сделать это. Библиотека net/http использует библиотеку mime под капотом для определения типов контента. В частности, он использует TypeByExtension, чтобы выяснить, связано ли расширение файла с известным типом контента. Чтобы настроить это, просто вызовите AddExtensionType, скажем, где вы регистрируете статическую маршрутизацию файлов во время запуска приложения.

Смежные вопросы