Створення Web API в MVC6 - Блог ITVDN
ITVDN: курси програмування
Відеокурси з
програмування

    Обери свою IT спеціальність

    Підписка

    Обери свою IT спеціальність

    Підписка

      Створення Web API в MVC6

      advertisement advertisement

      Введение

      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/

      КОМЕНТАРІ ТА ОБГОВОРЕННЯ
      advertisement advertisement

      Купуй передплатуз доступом до всіх курсів та сервісів

      Бібліотека сучасних IT знань у зручному форматі

      Вибирай свій варіант підписки залежно від завдань, що стоять перед тобою. Але якщо потрібно пройти повне навчання з нуля до рівня фахівця, краще вибирати Базовий або Преміум. А для того, щоб вивчити 2-3 нові технології, або повторити знання, готуючись до співбесіди, підійде Пакет Стартовий.

      Стартовий
      • Усі відеокурси на 3 місяці
      • Тестування з 10 курсів
      • Перевірка 5 домашніх завдань
      • Консультація з тренером 30 хв
      59.99 $
      Придбати
      Весняний
      • Усі відеокурси на 15 місяців
      • Тестування з 24 курсів
      • Перевірка 20 домашніх завдань
      • Консультація з тренером 120 хв
      90.00 $
      219.99 $
      Придбати
      Акція
      Базовий
      • Усі відеокурси на 6 місяців
      • Тестування з 16 курсів
      • Перевірка 10 домашніх завдань
      • Консультація з тренером 60 хв
      72.00 $
      89.99 $
      Придбати
      Акція
      Notification success
      Ми використовуємо cookie-файли, щоб зробити взаємодію з нашими веб-сайтами та послугами простою та значущою.