Swagger est un cadre prescriptif et complet pour construire, décrire, appeler et visualiser des services web de type RESTful.
L’objectif global est que le client et le système de fichiers se mettent à jour à la même vitesse que le serveur. Les méthodes, paramètres et modèles du fichier sont étroitement intégrés au code côté serveur, permettant aux API de rester synchronisées en permanence. Swagger n’a jamais facilité le déploiement et l’utilisation d’API puissantes.
révision
Commencez par créer un nouveau projet ASP.NET Core 3.1 et utilisez nuget pour installer le paquet Swashbuckle.AspNetCore avec la commande suivante :
Configurez le service Swagger dans le fichier startup.cs comme suit :
Méthode ConfigureServices
Méthode Configure
Créez un nouveau contrôleur de test avec le code suivant :
L’objet modèle de paramètres de paramètres produit avec interface de Test Controller est le suivant :
Après le début du projet, accédez à :http://localhost:18979/swagger/index.html, comme montré dans la figure ci-dessous :
swagger.json Le contenu est le suivant :
{ « openapi » : « 3.0.1 », « infos » : { « titre » : « Mon API », « version » : « v1 » }, « chemins » : { « /api/Test/Create » : { « post » : { « tags » : [ « Test » ], « requestBody » : { « content » : { « application/json » : { « schema » : { « $ref » : « #/composants/schémas/Produit » } }, « text/json » : { « schema » : { « $ref » : « #/composants/schémas/Produit » } }, « application/*+json » : { « schema » : { « $ref » : « #/composants/schémas/Produit » } } } }, « réponses » : { "200": { « description » : « Succès », « content » : { « texte/plain » : { « schema » : { « type » : « ficelle » } }, « application/json » : { « schema » : { « type » : « ficelle » } }, « text/json » : { « schema » : { « type » : « ficelle » } } } } } } } }, « components » : { « schémas » : { « Informations » : { « type » : « objet », « propriétés » : { « isDiscount » : { « type » : « booléen » }, « isVip » : { « type » : « booléen », « annulable » : vrai } }, « Propriétés additionnelles » : faux }, « Produit » : { « type » : « objet », « propriétés » : { « nom » : { « type » : « corde », « annulable » : vrai }, « handicapé » : { « type » : « booléen » }, « infos » : { « $ref » : « #/composants/schémas/Informations » } }, « Propriétés additionnelles » : faux } } }
}
Nous avons constaté que les types booléens et les types booléens annulables par défaut sont : true,En développement quotidien, si le bool n’est pas assigné, le défaut doit être faux, et le type nul doit être nul par défaut, nous essayons d’utiliser l’assurance pour simuler l’engagement, si les paramètres ne sont pas remarqués,Les accidents sont sujets。 (La semaine dernière, j’ai utilisé swagger pour simuler qu’un paramètre bool était vrai par défaut, ce qui a poussé les messages WeChat à tout le monde.)
Comment assigner un type booléen à faux par défaut ? Que diriez-vous que les types de null soient attribués null ?
Créez une nouvelle classe qui hérite d’ISchemaFilter, et le code est le suivant :
Et lors de l’ajout du service swagger, ajoutez le filtre AddSwaggerGen comme suit :
Pour certains champs bool spéciaux, la valeur par défaut doit être fixée à true et peut être ajoutée[ValorDéfautValeur (vrai)]Les caractéristiques sont les suivantes :
{ « nom » : « ficelle », « handicapé » : vrai, « infos » : { « isDiscount » : faux, « isVip » : null }
} swagger.json Le fichier est le suivant :
{ « openapi » : « 3.0.1 », « infos » : { « titre » : « Mon API », « version » : « v1 » }, « chemins » : { « /api/Test/Create » : { « post » : { « tags » : [ « Test » ], « requestBody » : { « content » : { « application/json » : { « schema » : { « $ref » : « #/composants/schémas/Produit » } }, « text/json » : { « schema » : { « $ref » : « #/composants/schémas/Produit » } }, « application/*+json » : { « schema » : { « $ref » : « #/composants/schémas/Produit » } } } }, « réponses » : { "200": { « description » : « Succès », « content » : { « texte/plain » : { « schema » : { « type » : « ficelle » } }, « application/json » : { « schema » : { « type » : « ficelle » } }, « text/json » : { « schema » : { « type » : « ficelle » } } } } } } } }, « components » : { « schémas » : { « Informations » : { « type » : « objet », « propriétés » : { « isDiscount » : { « type » : « booléen », « default » : faux }, « isVip » : { « type » : « booléen », « par défaut » : nul, « annulable » : vrai } }, « Propriétés additionnelles » : faux }, « Produit » : { « type » : « objet », « propriétés » : { « nom » : { « type » : « corde », « annulable » : vrai }, « handicapé » : { « type » : « booléen », « par défaut » : vrai }, « infos » : { « $ref » : « #/composants/schémas/Informations » } }, « Propriétés additionnelles » : faux } } }
} (Fin)
|