Инструменты и для Создания .NET HTTP API. Окончание
Начало
Продолжение
Фреймворки на основе ASP.NET Core
В таком активном сообществе многие проекты с открытым кодом расширяют платформу ASP.NET и даже находят новые интересные направления развития веб-API. Два следующих проекта - отличные примеры того, как сообщество развивает новые направления ASP.NET и веб-API.
API Endpoints
Про этот проект Стива Смита я уже писал. Задача проекта состоит в том, чтобы отвлечь разработчика от необходимости думать о концепции контроллера для создания HTTP API, заменив его набором конечных точек. По сути, конечные точки API абстрагируются от контроллера, поэтому вам придётся писать немного меньше кода. При этом вы по-прежнему можете использовать полный набор функций, предоставляемый классами
ActionResult.[HttpPost("/authors")]
[SwaggerOperation(
Summary = "New Author",
Description = "Creates a new Author",
OperationId = "Author.Create",
Tags = new[] { "AuthorEndpoint" })
]
public override async
Task<ActionResult<CreateResult>>
HandleAsync([FromBody] CreateCommand req)
{
var author = new Author();
_mapper.Map(req, author);
await _repository.AddAsync(author);
var result =
_mapper.Map<CreateResult>(author);
return Ok(req);
}
Поскольку API Endpoints – это абстракция над веб-API, вы можете использовать Swashbuckle, NSwag или любое другое расширение веб-API вместе с конечными точками API и пользоваться всеми преимуществами стека веб-API, но с более модульным подходом, чем на основе MVC.Проект Carter
Проект Carter привносит ещё большую модульность в ваши приложения ASP.NET Core. Он предлагает ориентированный на конечные точки подход к созданию HTTP API с помощью ASP.NET Core. Синтаксис Carter отлично подходит для разработчиков, которые ценят подход к маршрутизации конечных точек, и предлагает набор чистых интерфейсов для быстрого начала работы.
public class HomeModule : CarterModule {
public HomeModule() {
Get("/", async (req, res) =>
await res.WriteAsync("Hello Carter!"));
}
}
Благодаря многочисленным примерам и документации проект легко изучить и поэкспериментировать, а также он предлагает интересный подход к созданию HTTP-приложений. OpenAPI встроен в Carter по умолчанию, поэтому создаваемые вами конечные точки могут автоматически отображаться в спецификации OpenAPI. Проект Carter также может быть объединён с традиционным веб-API и структурой приложения ASP.NET Core, поэтому вы можете использовать его вместе со знакомым промежуточным ПО и службами ASP.NET Core.Источник: https://devblogs.microsoft.com/aspnet/open-source-http-api-packages-and-tools/