You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.6 KiB
2.6 KiB
marp | paginate | math | theme | title |
---|---|---|---|---|
true | true | mathjax | buutti | 2. HTTP Responses |
HTTP Responses
ASP.NET Status Codes
-
For a primer on HTTP status codes, check Frontend basics: Lecture 2
-
There are multiple possible status codes for each action
-
The
ControllerBase
the controllers should inherit from includes result methods for creatingActionResult
objects- All
ActionResult
objects implement theIActionResult
interface - Includes at least a status code, and can contain data such as view items or an error message
- This result is processed into a response to then sent to client
- All
Result methods
Status Code | Result Method | Usage |
---|---|---|
200 - OK |
Ok() |
GET , DELETE |
201 - Created |
Created() |
POST |
204 - No content |
NoContent() |
PUT , PATCH |
400 - Bad request |
BadRequest() |
POST , PUT , PATCH |
404 - Not found |
NotFound() |
All actions |
Custom |
StatusCode() |
All actions |
Status code example
[HttpGet("{id}")]
public IActionResult GetContactById(int id)
{
// Contacts = list of contact objects, fetched from some repository
var contact = Contacts.FirstOrDefault(c => c.Id == id);
if (contact == null)
{
return NotFound();
}
return Ok(contact);
}
- The previous code first attempts to find a
Contacts
object using the ID provided in the URI parameter
Exercise 1: Returning status codes
- Without using parameter constraints, modify your number list method from Lecture 1, Exercise 3 to return a status code
400 (Bad Request)
ifk
is smaller than1
or larger than100
. - Add a helpful error message to the result for both cases. The message should be seen as a message body in the response.
- Test with Swagger/Postman.