RESTworld.Business 4.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package RESTworld.Business --version 4.0.1                
NuGet\Install-Package RESTworld.Business -Version 4.0.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RESTworld.Business" Version="4.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RESTworld.Business --version 4.0.1                
#r "nuget: RESTworld.Business, 4.0.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install RESTworld.Business as a Cake Addin
#addin nuget:?package=RESTworld.Business&version=4.0.1

// Install RESTworld.Business as a Cake Tool
#tool nuget:?package=RESTworld.Business&version=4.0.1                

RESTworld

RESTworld is a framework which utilizes other common frameworks and patterns alltogether to enable easy and fast creation of a truly RESTful API.

Used frameworks and patterns

  • Entity Framework Core for data access
  • ASP.Net Core for hosting
  • HAL for providing hyperlinks between resources
  • OData for query support on list endpoints
  • AutoMapper for mapping between Entities and DTOs
  • Resource based authorization
  • API Versioning through media types

Pipeline

The most basic pipeline has the following data flow for a request on a list endpoint:

  1. Request
  2. Controller selection through ASP.Net Core (optionally with versioning)
  3. Query parsing through OData
  4. Controller method calls business service method
  5. Authorization validates and modifies the request (both optional)
  6. Service validates that all migrations have been applied to the database, to protect from locks during migration.
  7. Service gets the data through Entity Framework Core
  8. Entity Framework Core translates the query into SQL and gets the data from the database
  9. Business service translates Entities into DTOs through Automapper
  10. Authorization validates and modifies the response (both optional)
  11. Controller wraps the result in a HAL response
  12. Result

Usage as API developer

Example

You can find a complete example which leverages all the features offered by RESTworld at https://github.com/wertzui/RESTworld/tree/main/src/Example/ExampleBlog.

Solution structure

If your API gets the name MyApi, structure your Solution with the following Projects:

  • MyApi (ASP.Net Core Web API)
    • References RESTworld.AspNetCore, MyApi.Business
    • Contains your startup logic and your custom controllers
  • MyApi.Business
    • References RESTworld.Business, MyApi.Data
    • Contains your AutoMapperConfiguration and your custom services
  • MyApi.Data
    • References RESTworld.EntityFrameworkCore, MyApi.Common
    • Contains your Entity Framework Core Database Model including Entities and Migrations
  • MyApi.Common
    • References RESTworld.Common
    • Contains your DTOs and Enums
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on RESTworld.Business:

Package Downloads
RESTworld.AspNetCore

Package Description

RESTworld.Testing

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
18.0.0 40 11/20/2024
17.1.2 130 11/7/2024
17.1.1 341 10/11/2024
17.1.0 187 9/27/2024
17.0.0 119 9/20/2024
16.0.1 405 7/10/2024
16.0.0 102 7/3/2024
15.0.0 157 6/4/2024
14.1.1 724 1/9/2024
14.1.0 171 12/22/2023
14.0.0 412 11/15/2023
13.1.0 343 10/23/2023
13.0.0 328 9/27/2023
12.2.2 201 9/11/2023
12.2.1 456 7/17/2023
12.2.0 298 7/3/2023
12.1.3 230 6/28/2023
12.1.2 438 6/14/2023
12.1.1 404 5/25/2023
12.1.0 429 4/30/2023
12.0.1 269 4/19/2023
12.0.0 329 3/12/2023
11.1.1 637 2/22/2023
11.1.0 349 2/9/2023
11.0.0 538 1/24/2023
10.1.0 364 1/24/2023
10.0.1 700 12/21/2022
10.0.0 591 11/9/2022
9.1.0 841 10/20/2022
9.0.0 753 10/20/2022
8.7.0 894 9/27/2022
8.6.0 1,124 6/28/2022
8.5.0 1,253 6/23/2022
8.4.2 965 6/8/2022
8.4.1 1,280 5/13/2022
8.4.0 1,163 4/1/2022
8.3.0 878 3/30/2022
8.2.2 1,645 3/13/2022
8.2.1 1,223 3/9/2022
8.2.0 933 3/8/2022
8.1.1 1,765 2/22/2022
8.1.0 937 2/22/2022
8.0.0 906 2/21/2022
7.0.0 734 1/14/2022
6.0.1 431 1/6/2022
6.0.0 858 12/3/2021
5.1.0 3,079 11/25/2021
5.0.2 711 11/4/2021
5.0.1 676 11/4/2021
5.0.0 1,223 10/6/2021
4.2.0 560 9/29/2021
4.1.0 530 9/27/2021
4.0.1 626 9/8/2021
4.0.0 500 9/7/2021
3.1.0 447 8/18/2021
3.0.0 490 7/7/2021
2.0.0 624 6/29/2021
1.2.0 521 5/11/2021
1.1.0 567 4/22/2021
1.0.0 866 3/31/2021