2017-08-20 2 views
0

J'ai essayé de générer du code C# pour API et j'ai créé avec ASP Net Boilerplate, mais la réponse n'est pas désérialisable correctement. Après enquête, il semble que la réponse de JSON est enveloppée en utilisant une classe appelée "AjaxResponse"; cependant, le swagger.json n'inclut pas ce type dans la réponse de la méthode.génération de client swagger en utilisant l'outil swaggergen ne fonctionne pas avec la plaque passe-plat asp

Est-ce que quelqu'un sait comment créer un client C# Swagger qui tient compte du résultat encapsulé?

Répondre

0

Aspnet Boilerplate enveloppe le résultat réel dans AjaxResponse. La classe AjaxResponse est une classe de type générique. L'outil Swaggergen ne parvient pas à produire les bonnes classes de proxy, car l'encapsulation du résultat se produit à l'exécution. Ainsi la signature de l'api, saisie par Swagger est le résultat brut (non enveloppé). La seule solution est donc de désactiver l'encapsuleur automatique pour l'ensemble de la solution. Ajoutez les 2 lignes à la méthode PreInitialize() dans votre projet Web.Core. Et votre problème est résolu. .

Configuration.Modules.AbpAspNetCore() DefaultWrapResultAttribute.WrapOnError = false;

Configuration.Modules.AbpAspNetCore(). DefaultWrapResultAttribute.WrapOnSuccess = false;

+0

Merci! cela a fonctionné parfaitement! – Matt