Минимальные файлы, необходимые для развертывания webAPI на стороне сервера


Итак, после большого количества исследований я начинаю улучшать наш стек серверов обслуживания с помощью точки входа webAPI. Основываясь на этой теме, и особенно на последнем посте члена Совета Digerati, мы реализуем сервисы webAPI как фасад в наш уровень приложений WCF. (Наши службы WCF - это просто фасады в наш прикладной уровень, где живет все поведение)

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

Итак, в том, что это всего лишь проект службы, какие минимальные файлы мне нужны для построения функционального проекта службы? Мы намерены опубликовать оба типа служб (WCF и webAPI) бок о бок на одном сервере .. каждый вызов службы выполняет один и тот же идентичный вызов службы и возврат конкретного DTO для запроса. Пока это выглядит как App_Start, контроллеры и Glabal.asax / web.записи конфигурации. Мне определенно не нужны виды, модели или изображения!!!

Любой вклад в то, что другие сделали, чтобы сделать чистое развертывание службы, был бы очень приветствован здесь.

2 11

2 ответа:

Здесь та же проблема. Я нашел это. статья от Шона Кендрота, объясняющего, как создать минимальный проект Web API. Он был написан для бета-версии Web API, но, похоже, все еще действует.

  1. создать пустой ASP.NET проект.
  2. Добавить ссылку на System.Web.Http и System.Web.Http.WebHost (версия 4.0.0.0)
  3. Добавить файл Global.asax
  4. Зарегистрируйте маршрут в Global.Application_Start. Что-то вроде:

    protected void Application_Start(object sender, EventArgs e)
    {
        GlobalConfiguration.Configuration.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional });
    }
    
  5. Добавить контроллер

    public class SampleController : ApiController
    {
      public string Get(int id)
      {
        return "Hello";
      }
    }
    
    1. запустите проект локально с URL /api/sample/123 и наслаждайтесь результатом:

Введите описание изображения здесь

К вашему сведению. Я обнаружил, что мне пришлось сослаться еще на два .библиотеки DLL:

  • System. Net. Http
  • Newtonsoft.Json