commit
0b1ce5ad3a
|
@ -18,7 +18,6 @@ builder.Services.ConfigureHttpJsonOptions(options =>
|
||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
|
|
||||||
app.MapGet("/v1/todos/{id}", ([AsParameters] TodoItemRequest request) =>
|
app.MapGet("/v1/todos/{id}", ([AsParameters] TodoItemRequest request) =>
|
||||||
{
|
{
|
||||||
return request.todos.ToList().Find(todoItem => todoItem.Id == request.Id)
|
return request.todos.ToList().Find(todoItem => todoItem.Id == request.Id)
|
||||||
|
@ -33,31 +32,28 @@ struct TodoItemRequest
|
||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
[AsParameters]
|
|
||||||
public Todo[] todos { get; set; }
|
public Todo[] todos { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
internal record Todo(int Id, string Task, DateTime DueDate);
|
internal record Todo(int Id, string Task, DateTime DueDate);
|
||||||
|
|
||||||
|
|
||||||
[JsonSerializable(typeof(Todo[]))]
|
[JsonSerializable(typeof(Todo[]))]
|
||||||
internal partial class AppJsonSerializerContext : JsonSerializerContext
|
internal partial class AppJsonSerializerContext : JsonSerializerContext
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
// </snippet_1>
|
// </snippet_1>
|
||||||
|
|
||||||
|
|
||||||
#elif RDG009F
|
#elif RDG009F
|
||||||
// <snippet_1f>
|
// <snippet_1f>
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
var builder = WebApplication.CreateSlimBuilder();
|
var builder = WebApplication.CreateSlimBuilder();
|
||||||
|
|
||||||
var todos = new[]
|
var todos = new[]
|
||||||
{
|
{
|
||||||
new Todo(1, "Write tests", DateTime.UtcNow.AddDays(2)),
|
new Todo(1, "Write tests", DateTime.UtcNow.AddDays(2)),
|
||||||
new Todo(2, "Fix tests",DateTime.UtcNow.AddDays(1))
|
new Todo(2, "Fix tests",DateTime.UtcNow.AddDays(1))
|
||||||
};
|
};
|
||||||
|
|
||||||
builder.Services.AddSingleton(todos);
|
builder.Services.AddSingleton(todos);
|
||||||
builder.Services.ConfigureHttpJsonOptions(options =>
|
builder.Services.ConfigureHttpJsonOptions(options =>
|
||||||
{
|
{
|
||||||
|
@ -66,7 +62,6 @@ builder.Services.ConfigureHttpJsonOptions(options =>
|
||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
|
|
||||||
app.MapGet("/v1/todos/{id}", ([AsParameters] TodoItemRequest request) =>
|
app.MapGet("/v1/todos/{id}", ([AsParameters] TodoItemRequest request) =>
|
||||||
{
|
{
|
||||||
return request.todos.ToList().Find(todoItem => todoItem.Id == request.Id)
|
return request.todos.ToList().Find(todoItem => todoItem.Id == request.Id)
|
||||||
|
@ -83,10 +78,8 @@ struct TodoItemRequest
|
||||||
public Todo[] todos { get; set; }
|
public Todo[] todos { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
internal record Todo(int Id, string Task, DateTime DueDate);
|
internal record Todo(int Id, string Task, DateTime DueDate);
|
||||||
|
|
||||||
|
|
||||||
[JsonSerializable(typeof(Todo[]))]
|
[JsonSerializable(typeof(Todo[]))]
|
||||||
internal partial class AppJsonSerializerContext : JsonSerializerContext
|
internal partial class AppJsonSerializerContext : JsonSerializerContext
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue