Important
This example Dotnet Azure Function API was generated using the Cookiecutter API template.
This project is a Dotnet-based REST API built using Azure Function Apps. The API leverages Azure's serverless architecture, allowing you to deploy and scale functions effortlessly in the cloud. The HTTP-triggered functions serve as the endpoints for the API, providing a seamless way to handle client requests.
The REST API has the following endpoints:
- GET (by ID)
- GET (list)
- POST
- PATCH
- DELETE (soft-delete)
Dependency management is handled using Nuget, ensuring a streamlined and consistent environment for managing Dotnet packages and their dependencies.
-
Azure Function Apps: Utilizes Azure's serverless platform to create scalable and efficient endpoints with HTTP triggers.
-
Dotnet-Based: Written entirely in Dotnet, leveraging its rich ecosystem and libraries for rapid development.
-
Nuget for Dependency Management: Manages all Dotnet dependencies with Nuget, making the development environment consistent and easy to set up.
-
Cosmos DB NoSQL Account: This project uses Cosmos DB NoSQL database.
-
Dotnet 8.x
-
Azure Functions Core Tools: To run the Function Apps locally.
-
Azure CLI: To deploy and manage Azure Function Apps.
-
Dotnet: Dotnet SDK and CLI
-
Azure Account: An active Azure subscription for deploying the Function App.
-
Cosmos DB NoSQL Account either deployed in Azure or emulated.
-
Install Azure Functions Core Tools
Follow the documentation to install Azure Function Core Tools based on your operating system.
-
Install Dotnet SDK
If you haven't already installed Dotnet SDK, you can do so by following the official installation guide.
-
Install Dependencies
Install all dependencies:
make install
To be able to run the project locally, set the environment variable values in the local.settings.json project file.
-
Run the API Locally
make run
This command starts the local development server using the Azure Function Core Tools, where you can interact with your API endpoints.
-
Thunderclient
Included in the project is a Thunderclient collection in the .thunderclient directory to easily test the locally hosted APIs.
dotnet add package <package-name>
dotnet remove package <package-name>
Ensure your code is working as expected by running unit tests using dotnet test:
make test-unit
├── cookiecutter-template-dotnet
├── KittyClaws.Api
│ ├── Controllers
│ ├── Functions
│ ├── Interfaces
│ ├── Properties
│ ├── Repositories
│ ├── Services
│ ├── models
│ │ ├── Dtos
│ │ ├── Entities
│ │ └── schemas
│ └── utils
└── KittyClaws.Api.Tests.Unit
├── Controllers
├── Functions
├── Repositories
├── Services
└── utils
This project is licensed under the MIT License. See the LICENSE file for details.
Repository generated with Code-and-Sorts/cookiecutter-api.