Настройка информации OpenAPI при использовании в функции AzureC#

Место общения программистов C#
Ответить
Anonymous
 Настройка информации OpenAPI при использовании в функции Azure

Сообщение Anonymous »

У меня есть функция Azure, работающая на .NET 10.0 в изолированном рабочем режиме, и я хотел бы полностью интегрировать OpenAPI и скалярный пользовательский интерфейс для визуализации методов обслуживания, предоставляемых функцией Azure.
Я включил эти пакеты Nuget в свой проект: Теперь в моем program.cs я настроил функцию Azure, как обычно, и добавил вызов .ConfigureOpenApi() для обработки настройки OpenAPI:

Код: Выделить всё

using Microsoft.Azure.Functions.Worker.Extensions.OpenApi.Extensions;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

var host = new HostBuilder()
.ConfigureFunctionsWebApplication()
.ConfigureAppConfiguration(builder =>
{
builder.AddJsonFile("appsettings.json", true, true);
})
.ConfigureServices(s =>
{
s.AddHttpClient();

// adding some services for my function
s.AddScoped();
// ...
})
// set up OpenAPI
.ConfigureOpenApi()
.Build();

host.Run();
Это отлично работает, и у меня есть простая HTML-страница, которая затем ссылается на созданный документ OpenAPI JSON:

Код: Выделить всё

[Function("ApiDocs")]
public async Task Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "docs")] HttpRequestData req)
{
var response = req.CreateResponse(HttpStatusCode.OK);
response.Headers.Add("Content-Type", "text/html; charset=utf-8");

var html = """



BFH RIS Service API reference









Scalar.createApiReference('#app', { url: '/api/openapi/v1.json?format=json' })



""";

await response.WriteStringAsync(html);

return response;
}
Кажется, я не могу понять, как настроить пользовательскую информацию для моей службы внутри этой функции Azure.
В «обычном» веб-API ASP.NET Core 10.0 я мог бы использовать интеграцию .NET для OpenAPI, чтобы сделать что-то вроде этого:

Код: Выделить всё

builder.Services.AddOpenApi(options =>
{
options.AddDocumentTransformer((document, context, cancellationToken) =>
{
document.Info = new()
{
Title = "Checkout API",
Version = "v1",
Description = "API for processing checkouts from cart."
};
return Task.CompletedTask;
});
});
но как и где я могу «подключить» этот тип настроек при использовании OpenAPI в функции Azure? Метод .ConfigureOpenApi(), похоже, не допускает никаких настроек.....

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»