Skip to main content

ActionResult and Other Controller Actions Return Types in ASP.NET Core web API

An action result is what a controller action returns in response to a browser request.

The IActionResult return type is appropriate when multiple ActionResult return types are possible in an action. IActionResult and ActionResult work as a container for other action results, in that IActionResult is an interface and ActionResult is an abstract class that other action results inherit from.

IActionResult type

The IActionResult return type is appropriate when multiple ActionResult return types are possible in an action. The ActionResult types represent various HTTP status codes. Any non-abstract class deriving from ActionResult qualifies as a valid return type. Some common return types in this category are BadRequestResult (400), NotFoundResult (404), and OkObjectResult (200). Alternatively, convenience methods in the ControllerBase class can be used to return ActionResult types from an action. For example, return BadRequest(); is a shorthand form of return new BadRequestResult();.

Because there are multiple return types and paths in this type of action, liberal use of the [ProducesResponseType] attribute is necessary. This attribute produces more descriptive response details for web API help pages generated by tools like Swagger[ProducesResponseType] indicates the known types and HTTP status codes to be returned by the action.

Read more here

Comments

Popular posts from this blog

Migrations

Migrations help us ensure that the database schema and the domain model in the appliation are in sync. In real world projects, data models change as features get implemented: new entities or properties are added and removed, and database schemas need to be changed accordingly to be kept in sync with the application. Migrations provides a way to incrementally update the database schema to keep it in sync with the application's data model while preserving existing data in the database. More on Migrations with EF (Entity Framework) here Dapper and Migrations: Dapper is a lightweight Object-Relational Mapping (ORM) library for .NET that provides a simple way to interact with databases. Unlike full-fledged ORMs like Entity Framework, Dapper does not have built-in support for database migrations. Instead, it focuses on efficiently executing SQL queries and mapping the results to .NET objects.

Introduction

  This blog is a collection of key points and noteworthy information regarding buidling a webAPI with ASP.NET Core Program.cs Controller example ActionResult and Other Controller Actions Return Types in ASP.NET Core web API Attributes  Http Patch Logging Migrations ORMs

Logging

Default logging with ILogger occurs in console window but in production evironments, one may want to log in some file to refer to it later, here Serilog comes into play, to write logs to some file. We can inject ILogger into controller constructors as ILogger functionality comes with ASP.NET core public class AboutModel : PageModel { private readonly ILogger _logger; public AboutModel ( ILogger<AboutModel> logger ) { _logger = logger; } public void OnGet ( ) { _logger.LogInformation( "About page visited at {DT}" , DateTime.UtcNow.ToLongTimeString()); } }