> ## Content Index
> Fetch the complete content index at: https://www.mrstebo.co.uk/llms.txt
> Use this file to discover other available public pages before exploring further.

# Getting started building a simple Nancy API
- URL: https://www.mrstebo.co.uk/getting-started-building-a-simple-nancy-api/
- Published: 2017-07-20T23:00:00.000Z
- Updated: 2023-05-15T23:44:07.000Z
- Author: Steven Atkinson
- Tags: Dotnet, NancyFX, Software Development, Software Architecture, API Development

What? Other than it being totally ****AWESOME?!**

[Nancy](https://github.com/NancyFx/Nancy?ref=mrstebo.co.uk) is a framework for creating web applications. It makes sure to implement ****the super-duper-happy-path**, which means it requires very little effort to get a website up and running.

Here I will give a basic overview of how to build a Nancy API.

# Why choose Nancy?

The thing I love about using Nancy, is that I can build my web app in Visual Studio in Windows, but I am also able to run it in Linux! Or even run it in a Docker container. I am looking forward to Visual Studio being available for OSX, where everything should still work! 🙂

It is also really easy to use. There are so many Nuget packages out there that can add additional functionality to your Nancy app.

# How is a Nancy API project structured?

A Nancy web application (in a nutshell) is a collection of ****modules**. These modules define the routes for your application, and contain all the code you want to execute.

I commonly use ****Owin** to host my Nancy app, which needs to ****Microsoft.Owin.Host.SystemWeb** and create a ****Startup** class to initialize the application.

# The folders

## Models

This contains the models you want to return from the API

## Modules

Modules are the guts of the application. These modules contain the routes for your app

# The files

## Bootstrapper.cs

- Manually register dependencies
- Add additional features to you Nancy app

## Startup.cs

- Add Nancy to the Owin pipeline

# The Startup class

# A simple Nancy module

# Next steps

What I have just talked about is very basic, but it is definitely enough to get you started. In my next posts I will show you how to build a simple todo application using Nancy **(seems to be the standard tutorial app)* ***.*** This will include how to do testing using the ****Nancy.Testing** package! Then I shall also create a post on how to do continuous integration using ****GitLab CI** 🙂