« Swashbuckle » : différence entre les versions
Apparence
Ligne 92 : | Ligne 92 : | ||
}, | }, | ||
</filebox> | </filebox> | ||
= Paramètres optionnels = | |||
Swagger ne gère pas les paramètres optionnels s'ils font partie du chemin, il les considère comme des paramètres required. |
Version du 2 mai 2020 à 17:19
Liens
Ajout de NSwag à un projet .Net Core
# pour vscode
dotnet add MyProject.csproj package NSwag.AspNetCore
# Ajoute au fichier MyProject.csproj:
# <ItemGroup>
# <PackageReference Include="NSwag.AspNetCore" Version="11.17.15" />
|
![]() |
Url : http://localhost:<port>/swagger |
Configuration
Configuration Web API
Startup.cs |
public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerDocument();
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseOpenApi();
app.UseSwaggerUi3();
|
Configuration MVC
Startup.cs |
Problème avec IActionResult
NSwag utilise la réflexion pour obtenir le type de retour. Avec IActionResult il ne peut pas.
[HttpGet]
// utiliser SwaggerResponse
[SwaggerResponse(HttpStatusCode.OK, typeof(IReadOnlyList<ItemDto>))]
[SwaggerResponse(HttpStatusCode.BadRequest, typeof(void))]
// ou ProducesResponseType
[ProducesResponseType(typeof(IReadOnlyList<ItemDto>), StatusCodes.Status200OK)]
public IActionResult Get()
|
Test
Dans un projet Web API avec Visual Studio Code, ouvrir le navigateur sur la page swagger.
.vscode\launch.json |
"configurations": [
{
"launchBrowser": {
"enabled": true,
"args": "${auto-detect-url}",
"windows": {
"command": "cmd.exe",
"args": "/C start ${auto-detect-url}/swagger/index.html?url=/swagger/v1/swagger.json#!/Items"
},
|
Paramètres optionnels
Swagger ne gère pas les paramètres optionnels s'ils font partie du chemin, il les considère comme des paramètres required.