.NET Core

CRUD Operation in Asp.Net Core Web API with Swagger

Introduction

In this article, I explain how to integrate our API with the swagger and execute our web API using swagger, In this article, I explain CRUD operation with a Repository pattern in .net Core Web API.

step 1: Create new Web API with using .Net core

Step 2: Now install the package of swagger

open your NuGet package manager console and write below command into it.

Install-Package Swashbuckle

if you need more details about this package please click here (https://www.nuget.org/packages/Swashbuckle/)

Step 3: register the swagger generator

now open the startup.cs file and go to ConfigureServices, add below code into it.

services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo
                {
                    Version = "v1",
                    Title = "Employee API",
                    Description = "A simple example ASP.NET Core Web API",
                    TermsOfService = new Uri("https://example.com/terms"),
                    Contact = new OpenApiContact
                    {
                        Name = "Bhavdip Talaviya",
                        Email = "talaviya.bhavdip@gmail.com",
                        Url = new Uri("https://bhavdip13.github.io/portfolio"),
                    }
                    
                });
            });

now go to the Configure in the same file and Enable middleware to serve generated Swagger as a JSON endpoint, paste the below code into it.

// Enable middleware to serve generated Swagger as a JSON endpoint.
           app.UseSwagger();
           // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
           // specifying the Swagger JSON endpoint.
           app.UseSwaggerUI(c =>
           {
               c.SwaggerEndpoint("/swagger/v1/swagger.json", "Employee.API V1");
               c.RoutePrefix = string.Empty;
           });

now build your web API and run it.

step 4: create a folder name is “Models” in your web API, right-click on the models and create a new class for the model.
make a model like given below code.

using System.ComponentModel.DataAnnotations;

namespace SwaggerDemoWebAPI.Models
{
    public class MEmployee
    {
        [Key]
        public int EmpID { get; set; }
        public string Name { get; set; }
        public string Email { get; set; }
        public string Phone { get; set; }
        public string Gender { get; set; }
        public string Password { get; set; }
    }
}

step 5: create a folder name is “Data” in your web API, right-click on the data and create a new class for the DB context.

now add the DB set in the DB context like give below code.

using Microsoft.EntityFrameworkCore;
using SwaggerDemoWebAPI.Models;

namespace Employee.API
{
    public class DBContext : DbContext
    {
        public DBContext(DbContextOptions<DBContext> options) : base(options) { }
        public DbSet<MEmployee> Emp { get; set; }
    }
}

step 6: make the connection

now open the appsettings.json file and add the connection string like given below code.

{
  "ConnectionStrings": {
    "IdentityConnection": "Data Source=DILIP\\SQLEXPRESS01;Initial Catalog=Employee;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
  },
  "CatalogBaseUrl": "",
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning",
      "Microsoft": "Warning",
      "System": "Warning"
    }
  }
}

now we need to configure the connection string so please open the startups.cs file and go to the configure services, paste below line at the first

// Add Identity DbContext
 services.AddDbContext<DBContext>(options =>options.UseSqlServer(Configuration.GetConnectionString("IdentityConnection")));

make sure your connection string name same in both file (appsettings.json & startup.cs)

step 7: Add repository in our web API project, so you need to create a new folder Repository in your Web API project

In the repository create one interface like “IEmployeeRepository” please write the name of your register starting with I if that is interface then, copy below code and paste into your interface.

using SwaggerDemoWebAPI.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace SwaggerDemoWebAPI.Repository
{
   public interface IEmployeeRepository
    {
        void Create(MEmployee item);
        MEmployee GetById(int Id);
        List<MEmployee> GetAll();
        void Update(int id,MEmployee item);
        void Delete(int Id);

    }
}

now add the one class for the employee repository, copy below code into your employee repository

using System.Collections.Generic;
using System.Linq;
using Employee.API;
using SwaggerDemoWebAPI.Models;

namespace SwaggerDemoWebAPI.Repository
{
    public class EmployeeRepository : IEmployeeRepository
    {
        private readonly DBContext _context;

        public EmployeeRepository(DBContext context)
        {
            _context = context;

        }
        public void Create(MEmployee item)
        {
            _context.Emp.Add(item);
            _context.SaveChanges();
        }

        public MEmployee GetById(int Id)
        {
            return _context.Emp.FirstOrDefault(t => t.EmpID == Id);
        }
        public List<MEmployee> GetAll()
        {
            return _context.Emp.ToList();
        }

        public void Update(int id,MEmployee item)
        {
            var entity = _context.Emp.Find(id);
            if (entity == null)
            {
                return;
            }

            _context.Entry(entity).CurrentValues.SetValues(item);
            _context.SaveChanges();
        }

        public void Delete(int id)
        {
            var entity = _context.Emp.Find(id);
            if (entity == null)
            {
                return;
            }
            _context.Emp.Remove(entity);
            _context.SaveChanges();
        }
    }
}

step 8: Create Employee API, now you need to create a controller in your web API controller folder, copy below code and paste into your controller

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using SwaggerDemoWebAPI.Models;
using SwaggerDemoWebAPI.Repository;

namespace SwaggerDemoWebAPI.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class EmployeeController : ControllerBase
    {
        public EmployeeController(IEmployeeRepository emp)
        {
            _Emp = emp;
        }
        public IEmployeeRepository _Emp { get; set; }
        [HttpPost]
        public void Post([FromBody] MEmployee modal)
        {
            _Emp.Create(modal);
        }

        [HttpGet("{id}")]
        public IActionResult Get(int id)
        {
            var item = _Emp.GetById(id);
            if (item == null)
            {
                return NotFound();
            }
            return new ObjectResult(item);
        }
        [HttpGet]
        public List<MEmployee> Get()
        {   
            return _Emp.GetAll();

        }
        [HttpPut("{id}")]
        public void Put(int id, [FromBody] MEmployee modal)
        {
            _Emp.Update(id, modal);

        }
        [HttpDelete("{id}")]
        public void Delete(int id)
        {
            _Emp.Delete(id);

        }

    }
}

make sure don’t ambiguous the method, after all code complete please rebuild your solution explorer.

now Run your web API and test your web API with the swagger.

Bhavdip Talaviya

I'm an Asp.net MVC, Angular developer at Surat. I am an open-minded individual with a proven track record in designing websites and creating databases. I have strong technical skills as well as excellent interpersonal skills. I am eager to be challenged in order to grow and improve my communication and professional IT skills gained through previous experiences in the IT sector

View Comments

Share
Published by
Bhavdip Talaviya

Recent Posts

Testing hk

Testing

2 years ago

Create and Used PIPE in angular

In this article, we have to show Create and Used PIPE in angular

2 years ago

Operation

Testing

2 years ago

Create and Used PIPE in angular

In this article, we have to show Create and Used PIPE in angular

2 years ago

Create and Used PIPE in angular

In this article, we have to show Create and Used PIPE in angular

2 years ago

TETS NEW

test

3 years ago