Comment passer rapidement un projet .net de Swagger à OpenAPI ?

Depuis .net 9, Microsoft permet de profiter simplement OpenAPI. Si de base je ne trouve pas OpenAPI extraordinaire (car en 2025, tout le monde ne semble toujours pas en accord avec ce standard), je dois avouer que j'apprécie beaucoup l'implémentation fournie par Microosft. Principalement pour sa légèreté, et sa gestion des metadata (Include OpenAPI metadata in an ASP.NET Core app | Microsoft Learn).

Si votre projet utilise encore Swagger, il est possible de passer très rapidement à OpenAPI. L'opération est simple et rapide.

Dans un premier temps, il suffit de remplacer la dépendance Swashbuckle.AspNetCore :


<PackageReference Include="Swashbuckle.AspNetCore" Version="8.1.1" />

Par Microsoft.AspNetCore.OpenApi :


<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.4" />

Pour finir, il n'y a plus qu'à remplacer ce code :


builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
  app.UseSwagger();
  app.UseSwaggerUI();
}

Par :


builder.Services.AddOpenApi();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
  app.MapOpenApi();
}

Simple, non ?

Jérémy Jeanson

Comments

You have to be logged in to comment this post.