To Do Rest API Using Asp.net Core – Adding Swagger (Part 2)

Swagger has lots of tools for designing professional web APIs adhering to the standards. Swagger also has the means for documenting and testing web APIs.
In this post I will show you how we can integrate swagger to the API we built in the previous post to make testing easier and help our users to understand how to work with the API:
- Available end points
- Input
- Output
Related Posts
To Do Rest API Using Asp.net Core (Part 1)
To Do Rest API Using Asp.net Core – Adding Swagger (Part 2) This One
To Do Rest API Using Asp.net Core – Blazor Client (Part 3)
To Do Rest API Using Asp.net Core – Angular Client (Part 4)
To Do Rest API Using Asp.net Core – Flutter Client (Part 5)
Install the following NuGet Package: Install-Package Swashbuckle.AspNetCore
Startup.cs
Now modify your start up class as below.
Startup.ConfigureServices
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); // Register the Swagger generator, defining 1 or more Swagger documents services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "ToDo API", Version = "v1" }); });
Startup.Configure
// Enable middleware to serve generated Swagger as a JSON endpoint. app.UseSwagger(); // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), // specifying the Swagger JSON endpoint. app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "ToDo API V1"); }); app.UseMvc();
Complete File
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Swashbuckle.AspNetCore.Swagger; using ToDo.API.Data; namespace ToDo.API { public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { #region Registering DbContext services.AddDbContext<AppDbContext>(options => options.UseSqlite(Configuration.GetConnectionString("SqLite"))); //SqLite Provider #endregion services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); // Register the Swagger generator, defining 1 or more Swagger documents services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "ToDo API", Version = "v1" }); }); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } // Enable middleware to serve generated Swagger as a JSON endpoint. app.UseSwagger(); // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), // specifying the Swagger JSON endpoint. app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "ToDo API V1"); }); app.UseMvc(); } } }
Now fire up your project and visit http://localhost:58635/swagger/index.html remember that you should change your port number according to yours.
Thanks to swagger you now have a fully functional web interface for understanding and testing the API.
Hope you found this post helpful.