Добавление веб-API в существующие веб-формы asp.net Приложение

Моя команда хочет перейти с WCF на Web API. У нас есть рабочее приложение веб-формы asp.net, которое мы импортировали в VS2012 из VS2010. Все идет нормально.

Но теперь, когда я пытаюсь создать отдельный проект веб-API, я вижу, что нет шаблона веб-API. Самое близкое, что я могу найти, это создать приложение MVC 4 и установить шаблон проекта как WebAPI. Я следовал этому пути, и все в порядке. У меня есть рабочий API с примерным контроллером, который я могу вызвать, совершив вызовы из браузера.

Единственным недостатком этого является то, что этот конкретный метод приносит свой собственный багаж. Созданный мной проект MVC 4 содержит JQUERY и другие библиотеки, а также некоторые другие папки, которые мне, вероятно, не нужны. Я хочу только структуру веб-API, а не дополнительный багаж.

Я попытался найти шаблон, используя онлайн-поиск, но найденный пакет не работает должным образом и очень плохой рейтинг. enter image description here

Надеюсь, я правильно проиллюстрировал свою проблему. Я с нетерпением жду некоторых отзывов сейчас:) Спасибо.

Ответ 1

В Visual Studio 2013

  • Щелкните правой кнопкой мыши проект ASP.NET Web Forms.
  • Добавить Добавить элемент подкладок...
  • В разделе Установленный/Общий/MVC/Web API выберите тип леса, который вы хотите для использования.
  • Следуйте инструкциям для шаблона эшафота. Например, когда вы выбираете "Контроллер Web API 2 с действиями чтения/записи" или "Контроллер Web API 2 - Пусто", вам предлагается ввести имя контроллера
  • Затем вам нужно будет переместить недавно созданный контроллер в недавно созданную папку Контроллеры.

Результаты

Из того, что я вижу, Visual Studio делает следующее:

  • " App_Start/WebApiConfig2.cs". Создана папка
  • Controllers.
  • Web.config отредактирован, чтобы добавить элемент "обработчики" с содержимым в "system.webServer".
  • Добавлены следующие ссылки:
    • System.Net.Http
    • System.Net.Http.Formatting
    • System.Web.Extensions
    • System.Web.Http
    • System.Web.Http.WebHost
  • packages.config обновлен, чтобы включить:
    • "Microsoft.AspNet.WebApi"
    • "Microsoft.AspNet.WebApi.Client"
    • "Microsoft.AspNet.WebApi.Core"
    • "Microsoft.AspNet.WebApi.WebHost"

Примечания

Впоследствии я рекомендую выполнить те же действия, начиная с щелчка правой кнопкой мыши по папке "Контроллеры" вместо проекта. Это приведет к тому, что новый контроллер будет находиться в папке Controllers, а не на корневом уровне.

Readme из Visual Studio после выполнения следующих шагов:

Visual Studio добавила полный набор зависимостей для ASP.NET Web API 2 для проекта "RowersCode.Web".

В файле Global.asax.cs в проекте могут потребоваться дополнительные изменения, чтобы включить веб-API ASP.NET.

  • Добавьте следующие ссылки на пространство имен:

    • с использованием System.Web.Http;
    • с помощью System.Web.Routing;
  • Если код еще не определяет метод Application_Start, добавьте следующий метод:

    protected void Application_Start()

    {

    }

  • Добавьте следующие строки в начало метода Application_Start:

    GlobalConfiguration.Configure(WebApiConfig2.Register);

Ответ 2

После долгих исследований я смог придумать решение этой проблемы. Позвольте мне проиллюстрировать мое решение в отношении версии Visual Studio.

VS 2012

Как я уже упоминал в вопросе, нет определенного способа создания проекта Web API в VS2012. Вам нужно сделать это с помощью создания приложения MVC 4 и установки шаблона проекта как WebAPI. Затем, как только вы это сделаете, и у вас есть функционал веб-API, вы можете безопасно удалить дополнительный багаж, как библиотеки JQuery и другие вещи, потому что эти вещи абсолютно бесполезны здесь в вашем проекте.

VS 2013

В VS2013 существует, однако, более эффективный подход для добавления и управления проектами веб-API. В настоящее время я использую VS2013 для веб-API, и все вещи встали на свои места так, как я хотел. Пожалуйста, ознакомьтесь с этой ссылкой, и вы получите лучшую идею.

http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

Я надеюсь, что эта информация поможет всем новым пользователям Web API. Особенно для тех, кто хочет перейти на веб-API или добавить веб-API в существующие проекты.