/AdvancedWebAPI

Minimal Web API to advanced data retrieval using pagination, filtering, searching, sorting

Primary LanguageC#

πŸ“— Table of Contents

πŸ“– AdvancedWebAPI

AdvancedWebAPI is a .NET Solution that uses a layer architecture to expose a minimal Web API and to validate advanced data recovery using paging, filtering, searching and sorting.

Web API Service:

getAdvancedPeople Method:

Paging:

Paging

Paging Header:

Paging Response Header

Paging in Postman:

Paging Postman

Filtering:

Filtering

Filtering in Postman:

Filtering Postman

Searching:

Searching

Searching in Postman:

Searching Postman

Sorting:

Sorting

Sorting in Postman:

Sorting Postman

DTO Schema:

DTO Schema

getAllPeople Method:

01

πŸ›  Built With

Tech Stack

.NET Core Minimal API,

Server
Database

Key Features

  • EF Core Database First
  • Unit of Work and Repository Patterns
  • Services Dependency Injection

(back to top)

πŸ’» Getting Started

To get a local copy up and running, follow these steps:

Prerequisites

In order to run this project you need:

  • Visual Studio .NET 2022 updated to use NET Core 7
  • SQL Server Database

Setup

  1. Clone this repository to your desired folder:
  cd my-folder
  git clone https://github.com/NeckerFree/AdvancedWebAPI
  1. Download and restore the Adventure Works Database according to your SQL Server version Adventure Works DB

  2. Create a User as db_owner of this batabase

  3. Modify the connection string (AdventureWorksConnection) in the file \AWA.MinApi\appsettings.json to point your database

Install

Install this project with:

  1. Build the solution and assure that doesn't have errors

  2. Set the project AWA.MinApi as default

Usage

To run the project,

  • Start the application (F5)

  • The /swagger/index.html page is displayed

(back to top)

πŸ‘₯ Authors

πŸ‘€ Elio CortΓ©s

(back to top)

🀝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

(back to top)

⭐️ Show your support

If you like this project please start my project

(back to top)

πŸ™ Acknowledgments and references

This project is based on the articles published by Code Maze: Paging Filtering Searching Sorting

(back to top)

❓ FAQ (OPTIONAL)

  • What command are required to Scaffold from Scratch a DB First?

    • Run next commands:
      dotnet add AWA.DataAccess package Microsoft.EntityFrameworkCore.Design
      dotnet add AWA.DataAccess package Microsoft.EntityFrameworkCore.SqlServer
    
      dotnet ef dbcontext scaffold "Data Source=.;Initial Catalog=AdventureWorks2017; User Id=XXUser;Password=XXPWD;Encrypt=False" Microsoft.EntityFrameworkCore.SqlServer --project AWA.DataAccess --output-dir "AWA.Models\Models" --context-dir "AWA.DataAccess\Data" --namespace AWA.Models --context-namespace AWA.DataAccess --context AdventureWorksContext -f --no-onconfiguring
      dotnet tool install --global dotnet-ef
      dotnet tool update --global dotnet-ef 
    
  • How to Implement Unit Of Work and Generic Repository pattern?

(back to top)

πŸ“ License

This project is MIT licensed.

MIT license

(back to top)