DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

Cover image for Episode 2 - JSON API using ASP.NET Core, Docker & MongoDB: Project Structure
Gareth Bradley
Gareth Bradley

Posted on • Originally published at garfbradaz.github.io on

Episode 2 - JSON API using ASP.NET Core, Docker & MongoDB: Project Structure

Previously on Dcoding

In Episode 1 I set the scene for what this series will contain. Today’s episode is simply on setting your directory structure and creating the relevant projects.

Directory Structure

Firstly, create a directory structure for your Source (src) where our dotnet projects will be saved, tests will hold our Unit and Integration tests and lastly, docker which will hold our docker-compose.

    .
    β”œβ”€β”€ src
    β”œβ”€β”€ tests
    β”œβ”€β”€ docker

Src

Change directory to src and we will run the following dotnet command to new up a Project. Before we move on any further and do that though, lets talk about dotnet new for people who have not used it.

This command will create a dotnet project based off a default project template. You get a bunch of defaults with the SDK (and you can create your own. Run the following:

dotnet new --help

This will give you a list of available templates you can use:

templates

Take note of the short name as this is what we will be using next. So now we know what dotnet new does, lets create the project:

dotnet new webapi --auth Individual -o api -n BookStore.WebApi

This will create a folder with the name api and in it will create a new webapi project using authentication (we will explore this more in a later episode). The project will be called BookStore.WebApi.

Tip: You can do a dotnet new webapi --help and see all the available switches for that short name.

Your directory structure should look like this now:

    .
    β”œβ”€β”€ src
    | β”œβ”€β”€ api
    | |
    | β”œβ”€β”€ BookStore.WebApi
    β”œβ”€β”€ tests
    β”œβ”€β”€ docker

Tests

Change directory to the tests folder. Firstly mainly create a integration test folder. These will hold our Postman tests (again for another episode). Secondly, we need to create our Unit Test project. I will be using Xunit, but as you can see, there were a few different projects for testing when you did a dotnet new --help.

dotnet new xunit -o unit -n BookStore.Tests

Again this will create a xunit project type within a folder called unit. The project name will be BookStore.Tests. Within the integration folder just add an empty postman.json file.

    .
    β”œβ”€β”€ src
    | β”œβ”€β”€ api
    | |
    | β”œβ”€β”€ BookStore.WebApi
    β”œβ”€β”€ tests
    | β”œβ”€β”€ integration
    | β”œβ”€β”€ unit
    | β”œβ”€β”€ BookStore.Tests
    β”œβ”€β”€ docker

Docker

Change directory to docker folder and for now just create two empty files:

docker-compose.yml

docker-compose.dev.yml

Yes you guessed it, this files will become apparent (and fatter) in a future episode.

Next time

So now we have set up our Project directory structure, we can move on to setting up our Docker environment, using Dockerfiles and docker-compose. Join me next time.

Side note: Episode 1 can be found on my Github Repository

Top comments (0)

New programmer and javascript

Stop by this week's meme thread!