AspNetCore.Docs/aspnetcore/includes/webApi/end.md

4.1 KiB

Implement the other CRUD operations

In the following sections, Create, Update, and Delete methods are added to the controller.

Create

Add the following Create method:

::: moniker range="<= aspnetcore-2.0" [!code-csharp]

The preceding code is an HTTP POST method, as indicated by the [HttpPost] attribute. The [FromBody] attribute tells MVC to get the value of the to-do item from the body of the HTTP request. ::: moniker-end ::: moniker range=">= aspnetcore-2.1" [!code-csharp]

The preceding code is an HTTP POST method, as indicated by the [HttpPost] attribute. MVC gets the value of the to-do item from the body of the HTTP request. ::: moniker-end

The CreatedAtRoute method:

  • Returns a 201 response. HTTP 201 is the standard response for an HTTP POST method that creates a new resource on the server.
  • Adds a Location header to the response. The Location header specifies the URI of the newly created to-do item. See 10.2.2 201 Created.
  • Uses the "GetTodo" named route to create the URL. The "GetTodo" named route is defined in GetById:

::: moniker range="<= aspnetcore-2.0" [!code-csharp] ::: moniker-end ::: moniker range=">= aspnetcore-2.1" [!code-csharp] ::: moniker-end

Use Postman to send a Create request

  • Start the app.
  • Open Postman.

Postman console

  • Update the port number in the localhost URL.
  • Set the HTTP method to POST.
  • Click the Body tab.
  • Select the raw radio button.
  • Set the type to JSON (application/json).
  • Enter a request body with a to-do item resembling the following JSON:
{
  "name":"walk dog",
  "isComplete":true
}
  • Click the Send button.

::: moniker range=">= aspnetcore-2.1"

[!TIP] If no response displays after clicking Send, disable the SSL certification verification option. This is found under File > Settings. Click the Send button again after disabling the setting. ::: moniker-end

Click the Headers tab in the Response pane and copy the Location header value:

Headers tab of the Postman console

The Location header URI can be used to access the new item.

Update

Add the following Update method:

::: moniker range="<= aspnetcore-2.0" [!code-csharp] ::: moniker-end ::: moniker range=">= aspnetcore-2.1" [!code-csharp] ::: moniker-end

Update is similar to Create, except it uses HTTP PUT. The response is 204 (No Content). According to the HTTP specification, a PUT request requires the client to send the entire updated entity, not just the deltas. To support partial updates, use HTTP PATCH.

Use Postman to update the to-do item's name to "walk cat":

Postman console showing 204 (No Content) response

Delete

Add the following Delete method:

[!code-csharp]

The Delete response is 204 (No Content).

Use Postman to delete the to-do item:

Postman console showing 204 (No Content) response