+91-90427 10472
         
Dot net training in Chennai -Maria Academy

Web API with ASP.NET Core using MVC

27 Dec 2023

Creating a web API with ASP.NET Core using the MVC (Model-View-Controller) pattern entails creating controllers to handle HTTP requests, models to represent data, and routes for the API. A step-by-step guide to creating an MVC web API with ASP.NET Core is provided below.

Step 1 Install the Necessary Software

Check that your machine has the.NET SDK installed.

Step 2 Create a New ASP.NET Core MVC Web API Project

Run the following commands in a terminal or command prompt

dotnet new mvc -n MyMvcWebApi

cd MyMvcWebApi

This will create a new ASP.NET Core MVC project called MyMvcWebApi and navigate to its directory.

Step 3 Explore the Project Structure

Launch your preferred IDE and open the project. Controllers, Models, and Views are among the folders in the project structure.

Controllers In this section, you will define your API controllers.

Models To represent your data, you can create model classes.

Views Although views are not required for an API, this folder is included in the standard MVC structure.

Step 4 Create a Model

To represent your data, create a model class. Create a file called Item.cs in the Models folder, for example

public class Item

{

    public int Id { get; set; }

    public string Name { get; set; }

}

Step 5 Establish a Controller

Add a new file to the Controllers folder, such as ItemsController.cs, to create a controller

using Microsoft.AspNetCore.Mvc;

using System.Collections.Generic;

namespace MyMvcWebApi.Controllers

{

    [Route(api[controller])]

    [ApiController]

    public class ItemsController  ControllerBase

    {

        private static ListItem _items = new ListItem

   {

            new Item { Id = 1, Name = Item 1 },

            new Item { Id = 2, Name = Item 2 },

            new Item { Id = 3, Name = Item 3 }

        };

GET apiitems

        [HttpGet]

        public ActionResultIEnumerableItem Get()

        {

            return _items;

        }

GET apiitems1

        [HttpGet({id})]

        public ActionResultItem Get(int id)

        {

            var item = _items.Find(i = i.Id == id);

            if (item == null)

                return NotFound();

   return item;

        }

         POST apiitems

        [HttpPost]

        public ActionResultItem Post([FromBody] Item newItem)

        {

   newItem.Id = _items.Count + 1;

            _items.Add(newItem);

            return CreatedAtAction(nameof(Get), new { id = newItem.Id }, newItem);

        }

         PUT apiitems1

        [HttpPut({id})]

public IActionResult Put(int id, [FromBody] Item updatedItem)

        {

            var existingItem = _items.Find(i = i.Id == id);

            if (existingItem == null)

                return NotFound();

existingItem.Name = updatedItem.Name;

            return NoContent();

        }

         DELETE apiitems1

        [HttpDelete({id})]

        public IActionResult Delete(int id)

{

            var itemToRemove = _items.Find(i = i.Id == id);

            if (itemToRemove == null)

                return NotFound();

            _items.Remove(itemToRemove);

            return NoContent();

         }

     }

}

Step 6 Run the Program

Enter the following command at the command prompt or terminal

dotnet run

The URL for your API will be http://localhost:5000 or https://localhost:5001. Open an API testing tool such as Postman:

GET Request: To retrieve items, open https://localhost:5001/api/items.
POST Request: To add a new item, submit a POST request with a JSON body to https://localhost:5001/api/items.
PUT Request: To update an item, submit a PUT request with a JSON body to https://localhost:5001/api/items/1.
DELETE Request: To delete an item, send a DELETE request to https://localhost:5001/api/items/1.

Step 7 Explore and Extend

To improve your web API, investigate additional ASP.NET Core MVC features like middleware, authentication, dependency injection, and model binding. Depending on the needs of your application, you can handle various HTTP methods, define more models, and add more controllers.

Social tagging: >