Код: Выделить всё
// program.cs
using Microsoft.AspNetCore.Http.HttpResults;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenApi();
var app = builder.Build();
app.MapOpenApi();
app.MapGet("/balance", GetBalance);
app.Run();
return;
Ok GetBalance()
{
var balance = new Balance(
[
new BalanceEntry("Cash", 1000),
new BalanceEntry("Stocks", 4000)
],
[
new BalanceEntry("Credit Card", 2000),
new BalanceEntry("Loan", 3000)
]
);
return TypedResults.Ok(balance);
}
public record BalanceEntry(string AccountName, decimal Amount);
public record Balance(List Assets, List Liabilities);
< /code>
Как видите, я возвращаю экземпляр баланса с двумя списками того же типа, один для активов, один для обязательств.Liabilities
Код: Выделить всё
...
"Balance": {
"required": [
"assets",
"liabilities"
],
"type": "object",
"properties": {
"assets": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BalanceEntry"
}
},
"liabilities": {
"type": "array",
"items": { }
}
}
},
...
< /code>
Я попытался изменить записи на классы, это не помогло. If I swap the order of the Assets
Item
Version
< /tr>
< /thead>
.net sdk < /td>
td>99.0.300
< /tr>
microsoft.aspnecor. />9.0.7
< /tr>
microsoft.openapi (неявт через microsoft.aspnetcore.openapi) < /td>
1.17>
>
Подробнее здесь: https://stackoverflow.com/questions/797 ... tical-list