Простой проект WEB API REST

Каков наилучший способ создания простого REST API в Visual Studio 2013 с использованием ASP.NET MVC.

Я просто хочу что-то с контроллерами и конфигурацией маршрутов вместе с любыми другими основными требованиями для HTTP REST API.

Мне не нужны никакие механизмы просмотра Razor, включения Javascript или HTML.

Как я могу создать проект без всех нежелательных дополнений, которые я обычно удалял в прошлом?

Спасибо.

Ответ 1

Все это в выбранном вами шаблоне.

  • В диалоговом окне "Новый проект" выберите ".NET Framework 4.5", если он еще не выбран
  • Перейдите к Installed > Templates > Visual С# > Web, затем "ASP.NET Web Application" и выберите OK.
  • В диалоговом окне выберите тип проекта, выберите "Пусто", но затем обязательно проверьте "Веб-интерфейс" в разделе "Добавить папки и ссылки на основные ресурсы".

Теперь у вас будут минимальные минимальные значения.

Смотрите: http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

Ответ 2

В зависимости от того, какие части ASP.NET вы хотите, вы можете проверить Нэнси на https://github.com/thecodejunkie/Nancy. Он может быть размещен в ASP.NET и довольно легковесен и обеспечивает простую маршрутизацию с возможностью подключения различных технологий просмотра (Razor, Spark, SimpleView и т.д.).

Ответ 3

Вы можете удалить компонент MVC, если хотите, и просто использовать материал Web API 2. Добавьте свой собственный бит конфигурации:

        //attribute routing - lets me put any route any method in any darn file.
        //this sets you free.  I could never see doing it any other way.
        config.MapHttpAttributeRoutes();

Чтобы вы могли создать любой маршрут, который вы хотите "на лету", в любом файле, который вы создаете в качестве контроллера.

public class MyWeirdController : ApiController {
    //via REST, get object //method-route defined here as I want it
    [HttpGet] [Route("~/my/custom/route/someobject/{objectid}")]    
    public CustomObject GonnaGetCustomObject(int objectid) {

       .... use whatever 
      var obj = new CustomObject();
      obj.SetSomething = true;

     return obj
    }
}

Вам не нужен MVC. Я использую WebAPI2 с Linq2SQL (Entities - это больше PITA, когда я хочу просто), но эта часть также не нужна. Объекты L2SQL просто быстрее/легче встать и работать с классами моделирования, но любой класс или все, что вы хотите, отправить его.

Я обычно использую Knockout, если я хочу MVVM на стороне javascript. С KO.Mapping - я могу с одной строкой кода получать CustomOBject и иметь объект JS для работы и мгновенного привязки к элементам на странице. Самая сложная часть всего этого - изучение нокаута. Запись пользовательского атрибута с помощью WebAPI2 безумно легка и увлекательна.

Короче говоря, WebAPI2 с настраиваемой маршрутизацией атрибутов - это все, что вам нужно, чтобы поддерживать клиента REST любым способом. Разрушайте свои "контроллеры" любым способом, если хотите, любыми методами/возвращаемыми/типами, как вы хотите. Вы можете сделать это так просто, как вы хотите, или начать бросать вещи, такие как Knockout и L2SQL (или EF), чтобы еще больше привязать элементы.

Ответ 4

Я предполагаю, что лучший способ для вашего проекта - использовать WebApi даже с простой HTML-страницей, но... jQuery и даже что-то вроде Knockout.JS или Angular, это ДОЛЖНО ИМЕТЬ для любого современного проекта.