Generating bogus HTTP Endpoints with ASP.NET Core Minimal APIs

Generating fake data is a common practice in software development. It is useful for testing, prototyping, and filling databases with realistic data. While there are many libraries out there that can generate fake data, Bogus is one of the most popular and feature-rich ones.

But did you know that you can also use Bogus (https://github.com/bchavez/Bogus) to generate fake data for your HTTP endpoints? In this article, we will show you how to use Bogus to generate fake data for your HTTP endpoints using ASP.NET Core Minimal APIs.

What are ASP.NET Core Minimal APIs?

Minimal APIs are a new feature introduced in ASP.NET Core 6.0. They allow you to create endpoints with a minimal amount of code. You can create an endpoint with just a few lines of code, without needing to set up a full MVC application. This makes it easier and faster to create simple APIs.
You can keep it proper with library like Carter as explain in my previous article : https://www.code-review.tech/building-minimal-apis-with-crud-and-carter/

Setting up the Project

To get started, create a new ASP.NET Core Minimal API project. You can do this using the dotnet new command.

dotnet new web -n BogusHttpEndpoint

Next, add the Bogus package to your project.

dotnet add package Bogus

Creating the Endpoint

Once you have set up your project, you can create the endpoint. In this example, we will create an endpoint that returns a list of fake basketball players. To do this, we will use the Faker class from Bogus. This class allows you to define rules for generating fake data.

using Microsoft.AspNetCore.Mvc;
using Bogus;

var app = WebApplication.Create();

app.MapGet("/FakeBasketBallPlayers", () =>
        {
            var players = new Faker<BasketballPlayer>()
                .RuleFor(p => p.Name, f => f.Name.FullName())
                .RuleFor(p => p.Age, f => f.Random.Int(18, 40))
                .RuleFor(p => p.Height, f => f.Random.Float(1.5f, 2.2f))
                .RuleFor(p => p.Weight, f => f.Random.Float(50f, 120f));

            return players.Generate(10);
        });

app.Run();

In the code above, we first create a new instance of the Faker class, passing in the BasketballPlayer type as a generic parameter. We then define rules for generating fake data for each property of the BasketballPlayer class. For example, we use the RuleFor method to generate a full name for the Name property, an integer between 18 and 40 for the Age property, and so on.

Finally, we call the Generate method to generate a list of 10 fake basketball players.

Conclusion

That’s it! You now know how to use Bogus to generate fake data for your HTTP endpoints using ASP.NET Core Minimal APIs. This is just one of the many ways you can use Bogus to make your development process easier and more efficient.

Using fake data is an essential part of software development, whether you’re building a small prototype or a large-scale application. With Bogus and ASP.NET Core Minimal APIs, you can generate fake data quickly and easily. This can save you time and effort, and help you build better software faster.

Find the full code on github : https://github.com/FiftyCloud/basketballplayer

So why not give it a try? Create your own endpoints, generate your own fake data, and see how it can improve your development process.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *