Swagger é um framework prescritivo e completo para construir, descrever, chamar e visualizar serviços web no estilo RESTful.
O objetivo geral é que o cliente e o sistema de arquivos atualizem na mesma velocidade do servidor. Os métodos, parâmetros e modelos do arquivo estão integrados de forma rígida ao código do lado do servidor, permitindo que as APIs permaneçam sincronizadas o tempo todo. O Swagger nunca facilitou a implantação e o uso de APIs poderosas.
revisar
Primeiro, crie um novo projeto ASP.NET Core 3.1 e use o nuget para instalar o pacote Swashbuckle.AspNetCore com o seguinte comando:
Configure o serviço Swagger no arquivo startup.cs da seguinte forma:
Método ConfigureServices
Método Configure
Crie um novo controlador de Teste com o seguinte código:
O dispositivo modelo de parâmetro de produto do Controlador de Teste Criar interface é o seguinte:
Após iniciar o projeto, acesse a:http://localhost:18979/swagger/index.html, como mostrado na figura abaixo:
swagger.json O conteúdo é o seguinte:
{ "openapi": "3.0.1", "info": { "título": "Minha API", "versão": "v1" }, "caminhos": { "/api/Test/Create": { "post": { "tags": [ "Teste" ], "requestBody": { "conteúdo": { "application/json": { "esquema": { "$ref": "#/componentes/esquemas/Produto" } }, "text/json": { "esquema": { "$ref": "#/componentes/esquemas/Produto" } }, "application/*+json": { "esquema": { "$ref": "#/componentes/esquemas/Produto" } } } }, "respostas": { "200": { "Descrição": "Sucesso", "conteúdo": { "texto/simples": { "esquema": { "tipo": "corda" } }, "application/json": { "esquema": { "tipo": "corda" } }, "text/json": { "esquema": { "tipo": "corda" } } } } } } } }, "componentes": { "esquemas": { "Informação": { "tipo": "objeto", "propriedades": { "isDiscount": { "tipo": "booleano" }, "isVip": { "tipo": "booleano", "anulável": verdadeiro } }, "Propriedades adicionais": falso }, "Produto": { "tipo": "objeto", "propriedades": { "nome": { "tipo": "corda", "anulável": verdadeiro }, "incapacitado": { "tipo": "booleano" }, "info": { "$ref": "#/componentes/esquemas/Informação" } }, "Propriedades adicionais": falso } } }
}
Descobrimos que tanto os tipos Booleanos quanto os tipos Booleanos anuláveis padrão para: verdadeiro,No desenvolvimento diário, se o bool não for atribuído, o padrão deve ser falso, e o tipo nulo deve ser padrão para nulo, tentamos usar swagger para simular o compromisso, se os parâmetros não forem notados,Acidentes são propensos。 (Na semana passada, usei o swagger para simular que um parâmetro bool era verdadeiro por padrão, fazendo com que mensagens do WeChat fossem enviadas para todas as pessoas.)
Como faço para atribuir um tipo Booleano a false por padrão? E quanto aos tipos null sendo atribuídos a null?
Crie uma nova classe que herde do ISchemaFilter, e o código é o seguinte:
E ao adicionar o serviço swagger, adicione o filtro AddSwaggerGen da seguinte forma:
Para alguns campos bool especiais, o valor padrão precisa ser definido como true e pode ser adicionado[ValorPadrão(verdadeiro)]As características são as seguintes:
{ "nome": "corda", "Deficiente": Verdade, "info": { "isDiscount": falso, "isVip": null }
} swagger.json O arquivo é o seguinte:
{ "openapi": "3.0.1", "info": { "título": "Minha API", "versão": "v1" }, "caminhos": { "/api/Test/Create": { "post": { "tags": [ "Teste" ], "requestBody": { "conteúdo": { "application/json": { "esquema": { "$ref": "#/componentes/esquemas/Produto" } }, "text/json": { "esquema": { "$ref": "#/componentes/esquemas/Produto" } }, "application/*+json": { "esquema": { "$ref": "#/componentes/esquemas/Produto" } } } }, "respostas": { "200": { "Descrição": "Sucesso", "conteúdo": { "texto/simples": { "esquema": { "tipo": "corda" } }, "application/json": { "esquema": { "tipo": "corda" } }, "text/json": { "esquema": { "tipo": "corda" } } } } } } } }, "componentes": { "esquemas": { "Informação": { "tipo": "objeto", "propriedades": { "isDiscount": { "tipo": "booleano", "padrão": falso }, "isVip": { "tipo": "booleano", "padrão": nulo, "anulável": verdadeiro } }, "Propriedades adicionais": falso }, "Produto": { "tipo": "objeto", "propriedades": { "nome": { "tipo": "corda", "anulável": verdadeiro }, "incapacitado": { "tipo": "booleano", "padrão": verdadeiro }, "info": { "$ref": "#/componentes/esquemas/Informação" } }, "Propriedades adicionais": falso } } }
} (Fim)
|