distributed-computing/labs/lab_3/example_2.cs

27 lines
1.2 KiB
C#
Raw Permalink Normal View History

2023-10-25 23:53:03 +04:00
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddHttpClient(); // Добавляем библиотеку по работе с HTTP.
var app = builder.Build();
// Да, по заданию надо будет запрашивать метод /{uuid}. Тут запрашивается список.
app.MapGet("/", async (IHttpClientFactory httpClientFactory) =>
{
var remoteHost = "http://localhost:5158"; // Адрес, по которому развёрнут микросервис с задачами. В docker compose тут будет имя service.
var client = httpClientFactory.CreateClient();
var response = await client.GetFromJsonAsync<List<TaskEntityDto>>(remoteHost);
if (response == null)
return Results.BadRequest();
return Results.Ok($"Соседний микросервис отдал следующие задачи: {string.Join(", ", response.Select(i => i.Subject))}");
});
app.Run();
/// <summary>
/// DTO-класс для описания сущности из другого микросервиса.
/// </summary>
public class TaskEntityDto
{
public Guid Uuid { get; set; }
public string Subject { get; set; } = string.Empty;
public bool IsCompleted { get; set; }
}