MiniAPI:.NET7 Preview4之MiniAPI更新总览

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MiniAPI:.NET7 Preview4之MiniAPI更新总览相关的知识,希望对你有一定的参考价值。

一觉醒来,发现微软带来了.NET7 Preview4的更新,本次更新关于MiniAPI的还不少,难以掩饰的喜悦心情,促使我尽快把这个消息分享给大家,那下来我们看一下一共带来了哪些关于MiniAPI的更新:

返回值带来了TypedResults,这样进一步地丰富了返回值的多样性:

app.MapGet("/todos/id", async IResult (int id, TodoDb db)

    return await db.Todos.FindAsync(id) is Todo todo
        ? TypedResults.Ok(todo)
        : TypedResults.NotFound();
);

同时也带来了多个多个返回值:

app.MapGet("/todos/id", async Results<Ok<Todo>, NotFound> (int id, TodoDb db)

    return await db.Todos.FindAsync(id) is Todo todo
        ? TypedResults.Ok(todo)
        : TypedResults.NotFound();
);

OpenAPI的改进:

在《.NET6之MiniAPI(十八):OpenAPI swagger》我们说过,MiniAPI对Swagger的支持还不完美,相信这次,会带来一定的提升:

描述和参数:

app.MapGet("/todos/id", (int id) => ...)
    .WithOpenApi(operation => 
        operation.Summary = "Retrieve a Todo given its ID";
        operation.Parameters[0].AllowEmptyValue = false;
    );

返回值:

app.MapGet("/todos", async (TodoDb db)

    return Results.Ok(await db.Todos.ToArrayAsync());
)
.Produces<Todo[]>();

以及对多返回值的展示。

关于更详细的Demo,会在后续一些篇幅中显现。

以上是关于MiniAPI:.NET7 Preview4之MiniAPI更新总览的主要内容,如果未能解决你的问题,请参考以下文章

.NET7 Preview4 之OpenAPI swagger改进

.NET7 Preview4 之OpenAPI swagger改进

.NET7之MiniAPI(特别篇):.NET7 Preview3

.NET7之MiniAPI(特别篇):.NET7 Preview3

.NET7之MiniAPI(特别篇):.NET7 Preview3

.NET7 Preview4之MapGroup