Leniwy programista to wydajny programista. Przekonajmy się 🙂 Mamy do sprawdzenia API, które ma dokumentacje w Swagger. Możemy z poziomu UI wywołać i sprawdzić odpowiedzi dla żądań. Jednak w celu automatyzacji najlepiej napisać żądania i testy w Postman. Unikniemy dzięki temu manualnej roboty w Swagger UI. Kolekcje żądań po zakończeniu pracy możemy wypchnąć na repozytorium kodu np. Git. Super automatyzacja, ale chwila czy w Postman wszystkie parametry i żądania musimy ręcznie zadeklarować? Przecież to będzie dużo niewdzięcznej roboty. A co jeśli dałoby się wygenerować szablony żądań w Postman. Czas na sztuczkę, by ułatwić sobie życie przy pisaniu żądań w narzędziu Postman. Chcecie poznać sztuczkę, to zapraszam do wpisu.

Konfiguracja Swagger

Zacznijmy od stworzenia nowego projektu ASP.NET Core Web API w VS 2019. Wykorzystam projekt z domyślnego szablonu i nazwę go API. Leniwy programista nie będzie implementował nowych endpoint-ów. Do prezentacji sztuczki wystarczy domyślny projekt. Na początek do projektu w ASP.NET Core 3.1 dodajemy paczkę Swashbuckle.AspNetCore z NuGet.

Swashbuckle.AspNetCore NuGet

Po dodaniu paczki przechodzimy do konfiguracji Swagger Middleware w klasie Startup.cs. W metodzie ConfigureService dodajemy Swagger do kolekcji usług. Natomiast w metodzie Configure włączamy obsługę generowania Swagger jako JSON Endpoint i Swagger UI.

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.OpenApi.Models;

namespace API
{
	public class Startup
	{
		public Startup(IConfiguration configuration)
		{
			Configuration = configuration;
		}

		public IConfiguration Configuration { get; }

		public void ConfigureServices(IServiceCollection services)
		{
			services.AddControllers();

			services.AddSwaggerGen(c =>
			{
				c.SwaggerDoc("v1", new OpenApiInfo { Title = "API", Version = "v1", Description = "API tajnego projektu."});
			});
		}

		public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
		{
			if (env.IsDevelopment())
			{
				app.UseDeveloperExceptionPage();
			}

			app.UseSwagger();

			app.UseSwaggerUI(c =>
			{
				c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1");
				c.RoutePrefix = string.Empty;
			});

			app.UseHttpsRedirection();

			app.UseRouting();

			app.UseAuthorization();

			app.UseEndpoints(endpoints =>
			{
				endpoints.MapControllers();
			});
		}
	}
}

Wykonując powyższe kroki, skonfigurowaliśmy usługę Swagger w najprostszej postaci i mamy ją gotową do użycia. Jeśli chcemy wyświetlić Swagger UI z automatu przy uruchamianiu API, musimy ustawić właściwość launchBrowser na true w launchSettings.json. Warto także ustawić launchUrl na pustą wartość „” w tym samym pliku. Rezultatem powyższej konfiguracji będzie wyświetleni się Swagger UI po uruchomieniu projektu jak na poniższym screenie.

Swagger UI

Import Swagger API do Postman

Po uruchomieniu API z Swagger możemy przejść do najważniejszego punktu niniejszego wpisu. Importujemy API do Postman, poprzez wybranie opcji z menu File -> Import -> Import From Link. W polu podajemy JSON URL do naszego API, który jest dostępny z poziomu Swagger UI.

Import Swagger API do Postman

Po imporcie w kolekcji pokarzą się wszystkie dostępne akcje z API. W domyślny projekcie ASP.NET Core Web API jest dość skromnie, ale widzimy, że pojawiła się akcja GET.

Postman API

Podsumowanie

Wpis krótki, ale mam nadzieję, że zaprezentowana sztuczka niektórym zaoszczędzi ręcznej pracy w Postman 🙂 Powodzenia na szlaku optymalizacji pracy.