2016-08-13 1 views
1

J'utilise la bibliothèque httprouter Go pour implémenter un service d'API REST et j'ai décidé d'essayer ServeFiles pour traiter certains fichiers de schéma associés à mon API. Je note qu'il utilise le package net/http intégré de Go sous le capot pour servir les fichiers statiques.Comment est-ce que je sers un fichier statique avec httprouter avec le type MIME correct?

Cela fonctionne presque parfaitement, sauf pour un nit: les fichiers RAML sont servis avec le type de contenu text/plain. Je note, cependant, que les fichiers de schéma JSON que j'ai été servi avec application/json, donc clairement il ya une sorte d'association de type MIME qui se passe avec le service de fichiers statiques. Y at-il un moyen de le configurer pour détecter mon fichier RAML en tant que tel, et le servir avec, disons, le type de contenu application/raml+yaml à la place?

Je suis la convention habituelle de .raml extensions de fichiers pour les fichiers RAML et .json pour les schémas JSON.

Répondre

2

Oui, il y a un moyen de le faire. La bibliothèque net/http utilise la bibliothèque mime sous le capot pour détecter les types de contenu. En particulier, il utilise TypeByExtension pour déterminer si l'extension de fichier est associée à un type de contenu connu. Pour configurer cela, appelez simplement AddExtensionType, par exemple, où vous enregistrez votre routage de fichiers statiques au démarrage de l'application.