List authors = new() { new Authors() { Uuid= Guid.NewGuid(), Number = "1", Name = "Programming Basics", IdBook = Guid.Parse("6a1b4a72-5669-41fe-8d5b-106dc86f58bd") }, new Authors() { Uuid= Guid.NewGuid(), Number = "2", Name = "Advanced Algorithms", IdBook = Guid.Parse("f8692bea-b7e6-4164-b564-a921f16c35c9") }, new Authors() { Uuid= Guid.NewGuid(), Number = "3", Name = "Romantic Journey", IdBook = Guid.Parse("464bbdb8-39c0-4644-b9c0-3df1c484ea7e") }, new Authors() { Uuid= Guid.NewGuid(), Number = "3А", Name = "Mystery Island", IdBook = Guid.Parse("464bbdb8-39c0-4644-b9c0-3df1c484ea7e") }, }; var builder = WebApplication.CreateBuilder(args); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.MapGet("/", () => { return authors.Select(r => new AuthorEntityDto() { Uuid = r.Uuid, Number = r.Number, Name = r.Name, IdBook = r.IdBook, }); }) .WithName("GetAuthors") .WithOpenApi(); app.MapGet("/{uuid}", (Guid uuid) => { var author = authors.FirstOrDefault(r => r.Uuid == uuid); if (author == null) return Results.NotFound(); return Results.Json(new AuthorEntityDto() { Uuid = author.Uuid, Number = author.Number, Name = author.Name, IdBook = author.IdBook, }); }) .WithName("GetAuthorByGUID") .WithOpenApi(); app.MapPost("/{number}/{name}/{IdBook}", (string? Number, string Name, Guid IdBook) => { Guid NewGuid = Guid.NewGuid(); authors.Add(new Authors() { Uuid = NewGuid, Number = (string)Number, Name = (string)Name, IdBook = (Guid)IdBook }); var author = authors.FirstOrDefault(r => r.Uuid == NewGuid); if (author == null) return Results.NotFound(); return Results.Json(new AuthorEntityDto() { Uuid = author.Uuid, Number = author.Number, Name = author.Name, IdBook = author.IdBook, }); }) .WithName("PostAuthor") .WithOpenApi(); app.MapPatch("/{uuid}/{number}/{name}/{IdBook}", (Guid uuid, string ?number, string name, Guid IdBook) => { var author = authors.FirstOrDefault(r => r.Uuid == uuid); if (author == null) return Results.NotFound(); if (number != ",") author.Number = number; if (name != author.Name) author.Name = name; if (IdBook != author.IdBook) author.IdBook = IdBook; return Results.Json(new AuthorEntityDto() { Uuid = author.Uuid, Number = author.Number, Name = author.Name, IdBook = author.IdBook, }); }) .WithName("UpdateAuthor") .WithOpenApi(); app.MapDelete("/{uuid}", (Guid uuid) => { var author = authors.FirstOrDefault(r => r.Uuid == uuid); if (author == null) return Results.NotFound(); authors.Remove(author); return Results.Json(new AuthorEntityDto() { Uuid = author.Uuid, Number = author.Number, Name = author.Name, IdBook = author.IdBook, }); }) .WithName("DeleteAuthor") .WithOpenApi(); app.MapGet("/Authors/", async () => { var httpClient = new HttpClient(); var secondWorkerResponse = await httpClient.GetStringAsync("http://worker-1:8080/"); return secondWorkerResponse.ToArray(); }) .WithName("GetBooks") .WithOpenApi(); app.Run(); public class Authors { public Guid Uuid { get; set; } public string Number { get; set; } = string.Empty; public string Name { get; set; } = string.Empty; public Guid IdBook { get; set; } } public class AuthorEntityDto : Authors { } public class Books { public Guid Uuid { get; set; } public string Title { get; set; } = string.Empty; public string Genre { get; set; } = string.Empty; } public class BookEntityDto : Books { }