Минимальные файлы, необходимые для развертывания стороны сервера 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";
}
}
- Запустите проект локально с URL
/api/sample/123
и наслаждайтесь результатом:
![enter image description here]()
Ответ 2
FYI. Я обнаружил, что мне пришлось ссылаться на еще два .dlls:
- System.Net.Http
- Newtonsoft.Json