Как передать статический файл с httprouter с правильным типом MIME?

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

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

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

1 ответ

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

Другие вопросы по тегам