Get started
By the end of this page you’ll have your own solution, an API running on your machine, and a page of movies on your screen. It takes about five minutes, or ten if NuGet decides to download the internet first.
Before you start
Section titled “Before you start”You need the .NET 10 SDK. Docker is optional, but it gets you Seq for the logs and a container you can ship, so it’s worth having around.
Make it yours
Section titled “Make it yours”-
Install the template from NuGet.
Terminal window dotnet new install CleanWebApi.Template -
Create a solution. The name becomes your namespace, project names and folder, so pick something you’re happy to see a lot of.
Terminal window dotnet new cleanwebapi --name Acme.Movies --authorName "Your Name"cd Acme.Movies -
Have a look around. Everything you need is already here.
- Acme.Movies.sln
- Dockerfile
- docker-compose.yml
Directorysrc/
DirectoryApplication/ the rules, queries and validation
- …
DirectoryInfrastructure/ the database and repositories
- …
DirectoryPresentation/ the Web API controllers
- …
Directorytests/
DirectoryApplication.Tests.Unit/
- …
DirectoryInfrastructure.Tests.Integration/
- …
DirectoryPresentation.Tests.Integration/
- …
-
Run it. The
localenvironment seeds sample data and logs to the console, so there’s nothing to set up.Terminal window dotnet run --project ./src/Presentation -
Open the Scalar API reference at http://localhost:8080/scalar. Every endpoint is there with its parameters, responses and a Send button, so you never have to remember the shape of a request again.
-
Or call it from the terminal.
Terminal window curl "http://localhost:8080/api/movies?query=global&limit=2"You get a page of movies back:
{"items": [{ "id": "30fca414-247a-779e-105a-d81aa2506f58", "title": "Assimilated global infrastructure", "reviewCount": 1, "averageStars": 1 },{ "id": "c27d6600-79a6-9346-2595-a52b7f07dc3e", "title": "Automated global alliance", "reviewCount": 3, "averageStars": 3.3 }],"offset": 0,"limit": 2,"totalCount": 2}Yes, the movies are named by a corporate buzzword generator. Assimilated global infrastructure only got one star. Critics can be harsh.
-
Run the tests while you’re here.
Terminal window dotnet test