Skip to content

Code-and-Sorts/cookie-cs-az-func-api

Repository files navigation

KittyClaws API

Important

This example Dotnet Azure Function API was generated using the Cookiecutter API template.

Overview

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.

Features

  • 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.

Prerequisites

  • 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.

Setup and Installation

  1. Install Azure Functions Core Tools

    Follow the documentation to install Azure Function Core Tools based on your operating system.

  2. Install Dotnet SDK

    If you haven't already installed Dotnet SDK, you can do so by following the official installation guide.

  3. 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.

  4. 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.

  5. Thunderclient

    Included in the project is a Thunderclient collection in the .thunderclient directory to easily test the locally hosted APIs.

Development Workflow

Adding a New Dependency

dotnet add package <package-name>

Removing a Dependency

dotnet remove package <package-name>

Running Tests

Ensure your code is working as expected by running unit tests using dotnet test:

make test-unit

Repository structure

├── 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

License

This project is licensed under the MIT License. See the LICENSE file for details.


Repository generated with Code-and-Sorts/cookiecutter-api.

About

Example C# Dotnet Azure Function App project using the Cookiecutter API template.

Topics

Resources

License

Stars

Watchers

Forks