Upon using dotnet new webapi -n API it produces the API folder with the properties, obj and bin subfolders as in the screenshot below, but it doesn't have a Controllers folder. Can anyone guide me on this? The project is using .NET 8.0

It seems to be a recent .NET 8 change resulting in the Minimal APIs used by default.
From the docs for dotnet new templates: webapi (with fixed typo - PR @github):
-minimal|--use-minimal-apis
Create a project that uses the ASP.NET Core minimal API. Default is false, but this option is overridden by--controllers. Since the default for--controllersisfalse, enteringdotnet new webapiwithout specifying either option creates a minimal API project.
-controllers|--use-controllers
Whether to use controllers instead of minimal APIs. If both this option and-minimalare specified, this option overrides the value specified by-minimal. Default isfalse. Available since .NET 8 SDK.
So add -controllers/--use-controllers option to the command to get controllers:
dotnet new webapi -n API --use-controllers
Or
dotnet new webapi -n API -controllers
That command creates a Minimal API by default as shown here. A minimal web API does not have controllers.
Since the default for -controllers is false, entering dotnet new webapi without specifying the option creates a minimal API project.
To create a web API with controllers run the following command instead:
dotnet new webapi -controllers -n API
OR
dotnet new webapi --use-controllers -n API
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With