Должен ли я интегрировать WebAPI с моим веб-сайтом или сделать WebAPI отдельным?

На самом деле я использую ASP.NET MVC 4 для своего сайта. Этот веб-сайт будет использовать ту же базу данных, что и моя игровая база данных (логины и профили пользователей). Я буду использовать WebAPI только для игровой логики и запросов, поэтому там определенно будет высокий трафик. Я использую только 2 метода: один для аутентификации и один для запросов. (Существует своего рода огромная архитектура, которую я не буду здесь объяснять). Поскольку ASP.NET MVC 4 может довольно легко интегрировать web.api, почти ничего не добавляя, хотя я сам ... почему бы не добавить API непосредственно в проект моего веб-сайта, чтобы избежать дублирования кода. Как вы думаете, это хороший выбор и почему?

Спасибо!


person Rushino    schedule 07.10.2012    source источник


Ответы (1)


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

Предполагая, что игра и игровая логика (веб-API) вы собираетесь стать частью своего веб-сайта, например. www.mysuperniftygame.com (или любой другой URL-адрес), тогда да, вы, вероятно, хотите, чтобы веб-API был частью веб-сайта. Почему? Таким образом, вам не понадобится субдомен для ваших запросов API, например. gameapi.mysuperniftygame.com.

Почему это важно? Ну, если ваш веб-сайт и веб-приложение отправляют запросы API, вам, вероятно, не придется иметь дело с междоменными проблемами, когда вам придется включать такие вещи, как JSONP или CORS просто делать запросы к вашему собственному веб-API.

Что касается масштабирования и того, что API представляет собой большой объем трафика, вы можете горизонтально масштабировать веб-интерфейс (ы) И вы должны учитывать как минимум следующие две вещи:

  1. Сделайте контроллер (в данном случае API-контроллеры) экономичным, реализовав код вне контроллера, что является наилучшей практикой.
  2. Заставьте контроллеры API выполнять асинхронно. что должно помочь вашему веб-сайту и API продолжать реагировать, даже если есть длительный запрос к вашей базе данных.
person Daron Cox    schedule 30.10.2012