Going to create RESTful API using ASP.NET Core 1.0 or MVC 6. I assume, you know the RESTful API so I am not going to explain what is the RESTful Service / API in this article.
We are talking about MVC 6 and Asp.Net core 1.0. just for your information if you don’t know that like MVC 6 is a part of Asp.Net core 1.0 and it is a completely new unified framework for writing server side web applications and APIs.
One of the changes in MVC 6 is a separation of Asp.Net MVC and Web API is now past and merge into one. I thought it is good to having a look what changed has made to creating a RESTful API in MVC 6.
Let's start with simple CRUD (Create, Read, Update, Delete) operation in MVC 6 API.
Following below steps to create RESTful API in MVC 6 with Visual Studio 2015.
Step 1: Create a new project using visual Studio 2015.
- Open Visual Studio 2015 and go to file section and select New Project.
Step 2: Here you can choose ASP.NET 5 templates.

- As I already mention MVC 6 has removed the separation of web controller and API controller and combine into one. So it's no matter which application you choose.
- Yes, If you have a specific requirement like just want to create RESTful API then also ASP.NET 5 templates fulfill your requirement.
Step 3: Once solution created, you will notice few new things come up with default solution and few things have been removed.

- Please check output window for build process and check solution has built successfully.

Step 5: You need to add Model for this exercise which is a Student.
- Student Model have following property
a. StudentId
b. Name
c. SurName
Step 6: Now create a new controller for Student API, Select API Controller.
We are talking about MVC 6 and Asp.Net core 1.0. just for your information if you don’t know that like MVC 6 is a part of Asp.Net core 1.0 and it is a completely new unified framework for writing server side web applications and APIs.
One of the changes in MVC 6 is a separation of Asp.Net MVC and Web API is now past and merge into one. I thought it is good to having a look what changed has made to creating a RESTful API in MVC 6.
Let's start with simple CRUD (Create, Read, Update, Delete) operation in MVC 6 API.
Following below steps to create RESTful API in MVC 6 with Visual Studio 2015.
Step 1: Create a new project using visual Studio 2015.
- Open Visual Studio 2015 and go to file section and select New Project.
Step 2: Here you can choose ASP.NET 5 templates.

- As I already mention MVC 6 has removed the separation of web controller and API controller and combine into one. So it's no matter which application you choose.
- Yes, If you have a specific requirement like just want to create RESTful API then also ASP.NET 5 templates fulfill your requirement.
Step 3: Once solution created, you will notice few new things come up with default solution and few things have been removed.

- App_Data, App_Start and Global.asax have been removed.
- New *.Json file have been added.
- Added new folders wwwroot and Dependencies
- Please check output window for build process and check solution has built successfully.

Step 5: You need to add Model for this exercise which is a Student.
- Student Model have following property
a. StudentId
b. Name
c. SurName
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace RESTfulAPI.Models
{
public class Student
{
public int StudentId { get; set; }
public string Name { get; set; }
public string SurName { get; set; }
}
}
Write controller name as per your requirement.
Step 7: Once added API controller. You will get ready API controller.
- MVC 6 and Visual Studio 2015 provide the scaffolding of RESTful API.

Step 8: Now time to access RESTful API from POSTMAN.
- You can consume RESTful API from any source and get the result.
Hope this will help you to create your first RESTful API using MVC 6 and ASP.NET Core 1.0.
Step 7: Once added API controller. You will get ready API controller.
- MVC 6 and Visual Studio 2015 provide the scaffolding of RESTful API.
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNet.Http;
using Microsoft.AspNet.Mvc;
using Microsoft.Data.Entity;
using RESTfulAPI.Models;
namespace RESTfulAPI.Controllers
{
[Produces("application/json")]
[Route("api/Students")]
public class StudentsController : Controller
{
private ApplicationDbContext _context;
public StudentsController(ApplicationDbContext context)
{
_context = context;
}
// GET: api/Students
[HttpGet]
public IEnumerable GetStudent()
{
return _context.Student;
}
// GET: api/Students/5
[HttpGet("{id}", Name = "GetStudent")]
public async Task GetStudent([FromRoute] int id)
{
if (!ModelState.IsValid)
{
return HttpBadRequest(ModelState);
}
Student student = await _context.Student.SingleAsync(m => m.StudentId == id);
if (student == null)
{
return HttpNotFound();
}
return Ok(student);
}
// PUT: api/Students/5
[HttpPut("{id}")]
public async Task PutStudent([FromRoute] int id, [FromBody] Student student)
{
if (!ModelState.IsValid)
{
return HttpBadRequest(ModelState);
}
if (id != student.StudentId)
{
return HttpBadRequest();
}
_context.Entry(student).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!StudentExists(id))
{
return HttpNotFound();
}
else
{
throw;
}
}
return new HttpStatusCodeResult(StatusCodes.Status204NoContent);
}
// POST: api/Students
[HttpPost]
public async Task PostStudent([FromBody] Student student)
{
if (!ModelState.IsValid)
{
return HttpBadRequest(ModelState);
}
_context.Student.Add(student);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
{
if (StudentExists(student.StudentId))
{
return new HttpStatusCodeResult(StatusCodes.Status409Conflict);
}
else
{
throw;
}
}
return CreatedAtRoute("GetStudent", new { id = student.StudentId }, student);
}
// DELETE: api/Students/5
[HttpDelete("{id}")]
public async Task DeleteStudent([FromRoute] int id)
{
if (!ModelState.IsValid)
{
return HttpBadRequest(ModelState);
}
Student student = await _context.Student.SingleAsync(m => m.StudentId == id);
if (student == null)
{
return HttpNotFound();
}
_context.Student.Remove(student);
await _context.SaveChangesAsync();
return Ok(student);
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
_context.Dispose();
}
base.Dispose(disposing);
}
private bool StudentExists(int id)
{
return _context.Student.Count(e => e.StudentId == id) > 0;
}
}
}

Step 8: Now time to access RESTful API from POSTMAN.
- You can consume RESTful API from any source and get the result.
Hope this will help you to create your first RESTful API using MVC 6 and ASP.NET Core 1.0.

0 comments:
Post a Comment