Build JSON:API endpoints in ASP.NET Core. Translates JSON:API query parameters (filter[], sort, include, fields[], page[]) into typed EF Core queries and shapes responses as spec-compliant documents, so your controllers stay short.
dotnet add package Intility.JsonApiToolkitRegister in Program.cs:
builder.Services.AddJsonApiToolkit();Derive controllers from JsonApiController:
public class BooksController : JsonApiController
{
private const string ResourceType = "book";
[HttpGet]
public async Task<IActionResult> GetAllAsync()
{
return await JsonApiQueryAsync(_db.Books, ResourceType);
}
}Then call with JSON:API query parameters:
GET /api/books?filter[title]=Hobbit&include=author&fields[book]=title&page[size]=10&sort=-published
Filtering, sorting, includes, sparse fieldsets, and pagination all work without extra code.
- Documentation: https://intility.github.io/json-api-toolkit/
- Source: https://github.com/intility/json-api-toolkit
- Issues: https://github.com/intility/json-api-toolkit/issues
- License: MIT