ASP.NET MVC и предоставление стороннего API - PullRequest
1 голос
/ 05 января 2010

Я занимаюсь разработкой веб-приложения. Это скорее бизнес-приложение, а не веб-сайт. Я использую ASP.NET MVC, SQL Server 2008, и я купил LLBLGen. Мне нужно предоставить какой-то API для третьих лиц. Например, если это медицинское приложение, третьим лицам может потребоваться CRUD-пациент, получать сложные отчеты, задействовать определенные виды рабочих процессов и т. Д.

Каков наилучший способ сделать это с MVC, не переходя на маршрут астронавта архитектуры. Нужен ли мне целый слой типа «веб-сервис» или я могу повторно использовать свои контроллеры в MVC? Имеет ли смысл выставлять такого рода API через MVC? Оптимально, мне нужно решение, которое включает в себя наименьшее количество повторений кода. Я нашел кое-что о выполнении REST с MVC, но кое-что довольно двусмысленное, и я не уверен, имеет ли это смысл. Мне нужен разумный API, но я не обязан следовать всем принципам религии REST или чего-то подобного. Мне просто нужен какой-то API в дополнение к предоставлению HTML-интерфейса сайту, будь то REST, SOAP, что угодно.

Кроме того, какие есть варианты для работы с URL? Не все в приложении отображается на что-то вроде site / products / product-id. Некоторые из них включают использование сложных рабочих процессов и т. Д.

1 Ответ

0 голосов
/ 06 января 2010

Если у вас будет веб-сайт и веб-служба, я бы подумал о том, чтобы отделить слои доступа к данным и сущностей от MVC.

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

Эта концепция также известна как Разделение проблем .

Вы не можете / не должны повторно использовать свои контроллеры MVC в своем веб-сервисе. Если они настолько похожи друг на друга, что их невозможно различить, подумайте о том, чтобы написать свой веб-сайт как клиент веб-службы, а не как часть того же решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...