WebAPI Pages d'Aide: désactiver pour le lancement de la Production
J'ai développé un certain nombre de l'intérieur RESTE interfaces à l'aide de l'ancienne WCF cadre dans VS 2010. La possibilité pour elle de générer des pages d'aide est à portée de main pour développement et d'assurance qualité des plates-formes, mais pour une version de production, il était facile de désactiver la génération de ces pages d'aide dans la web.config fichier:
<standardEndpoint name="" helpEnabled="false" automaticFormatSelectionEnabled="true"/>
Je suis maintenant sur l'utilisation de la WebAPI cadre à la place (actuellement la version 1 sur VS 2012), mais il ne semble pas être aussi trivial pour désactiver cette fonction (c'est à dire que je peux pas trouver toutes les informations sur la façon de le faire dans un site web.fichier de config).
Certainement je peux aller de l'avant et le faire à la main dans le code lui-même, mais il y a certainement un moyen plus facile; quelque chose de similaire à la façon dont WCF fait comme décrit ci-dessus. Je voudrais utiliser le web.fichier de configuration de l'approche puisque j'ai déjà le web.la libération.config de transformer les fichiers en place pour les autres paramètres.
Des idées sur les meilleures pratiques sur ce serait appréciée.
OriginalL'auteur GoodEnuf | 2014-06-11
Vous devez vous connecter pour publier un commentaire.
API Web ne possède pas de support de la boîte à l'égard de web.config en fonction de l'activation ou de la désactivation de l'helppage.
Quelques options que vous pouvez envisager:
Depuis HelpPage est installé comme un MVC région, lors du déploiement de
de production, vous pourriez juste exclure cette
HelpPage
dossier.Créer une action de filtre qui renvoie 404 comme suggéré ici: Conditionnellement désactiver ASP.NET Contrôleur MVC
REMARQUE: pour le cas ci-dessus, si vous utilisez la valeur par défaut de l'API Web modèle, alors oui vous auriez besoin d'une étape supplémentaire pour afficher/ne pas afficher le
Help
lien dans la barre de navigation.Je viens de supprimer le dossier des zones. Swagger API est beaucoup plus agréable que celui par défaut, de toute façon.
OriginalL'auteur Kiran Challa
Ouvrir le Global.asax.cs,modifier votre code, comme l'extrait de code suivant code:
Parce que la page d'aide est dans la Zone nommée "HelpPage", de sorte que nous ne pouvons l'ignorer par le code ci-dessus dans la libération ou de l'environnement de production.
OriginalL'auteur Farb
Vous pouvez utiliser la directive #if DEBUG pour cacher votre code dans realase
OriginalL'auteur jarek
Au cas où quelqu'un tombe sur cette question, voici comment j'ai réussi à le faire.
J'ai ajouté de l'application suivante de réglage à la base du Web.fichier de configuration:
J'ai ensuite transformé cette valeur dans ma vie ou la LIBÉRATION fichier de config comme ceci:
Puis j'ai ajouté le code suivant à la fin de mon WebApiConfig.Méthode Register:
Cela fera l'aide de la page indisponible pour des configs avec ExcludeHelpPage définie sur true.
config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } );
et j'ai ajouter votre code après. Mais sur le "HelpPageAreaRegistration.cs" j'ainew { controller = "Help", action = "Index", apiId = UrlParameter.Optional });
Aucune idée de pourquoi l'aide n'est pas d'être ignoré?OriginalL'auteur Soeholm
Ma solution pour la désactivation de
ApiController
contrôleur:#if DEBUG
)ExecuteAsync
intercepte l'invocation et vérifie fonction bascule (drapeau);HTTP 410 GONE
Le code:
OriginalL'auteur andrew.fox