Output Formatters
Return TOON format in HTTP responses using MVC output formatters.
Installation
dotnet add package ToonNet.AspNetCore.Mvc
Setup
using ToonNet.AspNetCore.Mvc;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers()
.AddToonFormatters();
var app = builder.Build();
app.MapControllers();
app.Run();
Using in Controllers
Return TOON Data
[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
[HttpGet("{id}")]
[Produces("application/toon")]
public IActionResult GetUser(int id)
{
var user = new User
{
Id = id,
Name = "Alice",
Email = "alice@example.com"
};
return Ok(user); // Automatically serialized to TOON
}
}
Response Example
HTTP/1.1 200 OK
Content-Type: application/toon
Id: 1
Name: Alice
Email: alice@example.com
Using ToonResult
Alternative approach using ToonResult:
[HttpGet("{id}")]
public IResult GetUser(int id)
{
var user = GetUserFromDatabase(id);
return Results.Toon(user); // Extension method
}
Content Negotiation
Client specifies desired format via Accept header:
GET /api/users/1 HTTP/1.1
Accept: application/toon
See Also
- Input Formatters: Handle TOON requests
- Dependency Injection: Service configuration