ITVDN logo
Видеокурсы по
программированию

Доступ более чем к 7700 видеоурокам от $19.99

Подписка
ITVDN logo
Видеокурсы по
программированию

Доступ более чем к 7700 видеоурокам от $19.99

Подписка

Введение

ASP.Net Web API – это основа создания HTTP услуг широкого спектра клиентов, таких как браузеры, мобильные телефоны, планшеты и так далее. API должна быть совместима с современными браузерами, чтобы использовать эти услуги в простой форме. Мы можем быстро и просто сбрасывать служебные данные в браузер, а также приложения.


Необходимость в Web API

Если Вы нуждаетесь в Web Service и Вам не нужно SOAP, то API ASP.Net –лучший выбор. Он строит простые HTTP сервисы, основанные на базе существующей WCF. ASP.Net Web API на основе HTTP легко определяются. У них открытый исходный код. Легкая архитектура подходит для устройств с ограниченной шириной полосы, например, смартфонов.

Создание простой Web API в ASP. NET MVC 6

Запустите Visual Studio 2015 Preview. В меню Файл выберите New > Project. В диалоговом окне New Project нажмите Tempates > Visual C# > Web и выберите ASP. NET шаблон проекта Web-приложений. Назовите проект "WebApplication1" и нажмите OK.

Создание

В диалоговом окне New ASP.NET Project выберите "ASP.NET 5.0 Empty” шаблон.

Диалоговое окно

Проект включает в себя следующие файлы:  

Файлы проекты

Global.json содержит настройки решения. В project.json находятся настройки проекта. Project_Readme.html – read me файл. Startup.cs содержит встроенный код конфигурации.

Откройте файл Project.json. Добавьте библиотеки классов (class libraries) в разделе зависимостей (dependencies).

"dependencies": {

          "Microsoft.AspNet.Server.IIS": "1.0.0-beta1",

          " "Microfost.AspNet.Diagnostics": "1.0.0-beta1"

}

Затем откройте Startup.cs с кодом, показанным ниже. 

public class Startup

   {

        public void Configure(IApplicationBuilder app)

        {

            // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940 

            app.UseWelcomePage();

            // app.UseMvc(); 

        }

    }

 После отладки Visual Studio перейдите на http://localhost:port/ в браузере.

Окно браузера

Создание Web API

Мы создадим Web API, чтобы упорядочить список клиентских продуктов. Сначала нужно добавить ASP.Net MVC6 в приложение.

Добавьте пакет MVC6 в список зависимостей в Project.json. Используйте код ниже.

"dependencies": {

        "Microsoft.AspNet.Server.IIS": "1.0.0-beta1",

        "Microsoft.AspNet.Diagnostics": "1.0.0-beta1",

        "Microsoft.AspNet.Mvc": "6.0.0-beta1"  

    }

Затем добавьте MVC в request pipeline в Startup.cs.

  • Добавьте Using для Microsoft.Framework.DependencyInjection.
     
  • Добавьте следующий метод в Startup класс.

using System;

using Microsoft.AspNet.Builder;

using Microsoft.AspNet.Http;

using Microsoft.Framework.DependencyInjection;//add new 

namespace WebApplication1

{

    public class Startup

    {

        public void Configure(IApplicationBuilder app)

        {         

            app.UseWelcomePage(); 

            app.UseMvc();

        }

        public void ConfigureServices(IServiceCollection services)

        {

            services.AddMvc();

        }

    }

}

Добавьте модель

using System;

using System.ComponentModel.DataAnnotations;

namespace WebApplication1.Model

{

    public class Customer

    {

        public int CustomerId { get; set; }

        [Required]

        public string Name { get; set; }

    }

}

Добавьте контроллер 

using Microsoft.AspNet.Mvc;

using System.Collections.Generic;

using System.Linq;

using WebApplication1.Model;

namespace WebApplication1.Controllers

{

    public class HomeController : Controller

    {        

        static readonly new List<Customer> _items = new List<Customer>() 

           { 

               new Customer  { CustomerId = 1, Name = "Henry" }, 

               new Customer { CustomerId = 2, Name = "John" }, 

           };

        public IEnumerable<Customer> Get()

        {

            return _items;

        }

        public IActionResult GetById(int id)

        {

            var its = _items.FirstOrDefault(x => x.CustomerId == id);

            if (its == null)

            {

                return HttpNotFound();

            }

            return new ObjectResult(its);

        }

        public void CreateCustomer([FromBody] Customer item)

        {

            if (!ModelState.IsValid)

            {

                Context.Response.StatusCode = 400;

            }

            else

            {

                item.CustomerId = 1 + _items.Max(x => (int?)x.CustomerId) ?? 0;

                _items.Add(item);

                string url = Url.RouteUrl("GetByIdRoute", new { id = item.CustomerId },

                    Request.Scheme, Request.Host.ToUriComponent());

                Context.Response.StatusCode = 201;

                Context.Response.Headers["Location"] = url;

            }

        }

        public IActionResult DeleteItem(int id)

        {

            var item = _items.FirstOrDefault(x => x.CustomerId == id);

            if (item == null)

            {

                return HttpNotFound();

            }

            _items.Remove(item);

            return new HttpStatusCodeResult(204);

        }

    }

}

Выше описывается класс HomeController.

Маршрутизация

Атрибут маршрутизации определяет URL шаблоны контроллера.

[Route("api/[controller]")]

Методы HTTP

[HttpGet], [HttpPost] и [HttpDelete] – атрибуты, определяющие методы HTTP для контроллера.

public IEnumerable<Сustomer> Get() { }  //[HttpGet] 

public IActionResult GetById(int id) { } //[HttpGetbyid} 

public void СreateСustomer([FromBody] Сustomer item) { } // [HttpPost] 

public IActionResult DeleteItem(int id) { } //[HttpDelete]

{Customerid: int} int ограничивает переменную до соответствия целому числу, чтобы URL-адреса совпадали.

http://localhost/api/home/1

http://localhost/api/home/42

Из этой статьи Вы узнали, как создавать Web API в MVC 6, используя модели, контроллер и HTTP методы.

Источник: http://www.c-sharpcorner.com/UploadFile/85ed7a/create-web-api-in-mvc-6/

СТАТЬИ ПО СХОЖЕЙ ТЕМАТИКЕ
ВИДЕО КУРСЫ ПО СХОЖЕЙ ТЕМАТИКЕ
КОМЕНТАРИИ И ОБСУЖДЕНИЯ
ОЦЕНИТЕ ДАННЫЙ МАТЕРИАЛ

ПОДПИСКА НА ITVDN ВЫГОДА ДО 29.95$ НА ОБУЧЕНИЕ ПРЕСТИЖНЫМ ПРОФЕССИЯМ!

1 месяц19.99$
подписка

легкий старт в обучении

3 месяца49.99$
подписка

выгода от подписки до9.98$

6 месяцев89.99$
подписка

выгода от подписки до29.95$