Skip to content

NeckerFree/AdvancedWebAPI

Repository files navigation

πŸ“— 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)

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages