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

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

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

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

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

Ответ 1

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

  • Создайте пустой проект ASP.NET.
  • Добавьте ссылку на System.Web.Http и System.Web.Http.WebHost (версия 4.0.0.0)
  • Добавить файл Global.asax
  • Зарегистрируйте маршрут в 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 });
    }
    
  • Добавить контроллер

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

enter image description here

Ответ 2

FYI. Я обнаружил, что мне пришлось ссылаться на еще два .dlls:

  • System.Net.Http
  • Newtonsoft.Json