JsonChisel 1.0.2

dotnet add package JsonChisel --version 1.0.2
                    
NuGet\Install-Package JsonChisel -Version 1.0.2
                    
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="JsonChisel" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="JsonChisel" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="JsonChisel" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add JsonChisel --version 1.0.2
                    
#r "nuget: JsonChisel, 1.0.2"
                    
#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.
#:package JsonChisel@1.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=JsonChisel&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=JsonChisel&version=1.0.2
                    
Install as a Cake Tool

JsonChisel

A .NET middleware for filtering JSON responses in minimal APIs.

JsonChisel allows you to selectively return only the requested fields from your API responses by specifying them in the request header. This is inspired by the field selection mechanism in GraphQL.

Key Features:

  • Field Selection: Specify the desired fields to include in the response using a comma-separated list in the fields header (header name is configurable).
  • Minimal API Compatibility: Seamlessly integrates with .NET minimal APIs.
  • Easy to Use: Simple middleware registration and usage.
  • Customizable: Configure the fields header name and other options.

Installation

Install the JsonChisel NuGet package:


Install-Package JsonChisel
Usage

Register the middleware in Program.cs:
Фрагмент кода

var app = builder.Build();

app.UseMiddleware<JsonChiselMiddleware>();
//or 
//app.UseJsonChisel();

// ... rest of your app configuration

Send requests with the fields header:

GET /api/data
Host: localhost:5000
fields: id,name,address

Example

Response without fields header:


{
"id": 1,
"name": "John Doe",
"address": {
"street": "123 Main St",
"city": "Anytown"
},
"email": "john.doe@example.com"
}

Response with fields header:


{
"id": 1,
"name": "John Doe",
"address": {
"street": "123 Main St",
"city": "Anytown"
}
}

Contributing

Contributions are welcome! Please submit pull requests to the official repository: [https://github.com/dejandjenic/JsonChisel]

License

This project is licensed under the MIT license.

Disclaimer:

This middleware is intended for demonstration and educational purposes. It's recommended to carefully evaluate its suitability and security implications for your specific use case.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 163 12/29/2024
1.0.1 148 12/29/2024
1.0.0 157 12/29/2024