Как запросить SQL Server через REST для получения XML

Мы используем структуру веб-приложений для создания приложений, которые должны иметь возможность запрашивать базу данных SQL Server и получать результаты как XML.

В прошлом структура обеспечивала эту возможность. Но эта способность теперь устарела.

Итак, мы думали, что структура позволяет нам легко запрашивать службу REST через HTTP, поэтому почему бы не использовать конечную точку HTTP SQL Server. Тем не менее, мы тогда читаем, что конечные точки HTTP устарели, как и SQL Server 2008. Не платформа для проектирования архитектуры на будущее.

Azure (ранее SQL Data Services) собиралась предлагать подобные услуги, но теперь поддерживает протокол TDS, а не http. Таким образом, никакой REST не будет найден в Azure.

Рекомендуемая альтернатива заключается в разработке пользовательского приложения с использованием служб данных WCF (ранее служб данных ADO.NET). Но это означало бы создание целого дополнительного приложения для разработки, развертывания и поддержки, предположительно с его собственной установкой проверки подлинности, отдельно от SQL Server и собственного репозитория исходного кода... с использованием технологии, с которой у нас нет опыта, поэтому с ее собственным довольно глубокая кривая обучения.

Можно ли предложить любой другой способ запроса базы данных SQL Server через REST/HTTP, который не является устаревшим, и который будет возвращать результаты в виде XML?

Спасибо за любую помощь.

Ответ 1

Читайте здесь: Создание OData API для StackOverflow, включая XML и JSON за 30 минут. В основном, продвижение по дороге предназначено для REST, предлагаемого слоем приложения (WCF powering EF, который обеспечивает отображение OData). ИМХО прямой HTTP-доступ к движку был очень плохой идеей для начала, никто не любил HTTPEndpoints SQL Server 2005, и они были такими же ошибочными, как и они. Невозможно сопоставить модель ошибок HTTP, систему безопасности, систему типов в SQL и ожидать плавной функциональной совместимости. Наличие уровня HTTP в отдельном приложении повышает ответственность обработки экосистемы HTTP в компоненте, специализированном в этом (WCF), и логике сопоставления модели REST с моделью БД в компоненте, специализированном в этой задаче (EF).

Ответ 2

Похоже, вы можете быть привязаны к стеку MS, но если вы этого не сделаете, вы можете использовать restSQL в контейнере Java EE (Tomcat, WebLogic и т.д.) поверх MySQL или PostgreSQL. restSQL имеет полный HTTP API с кодировкой JSON или XML. Он предлагает два поворота: обновляемые составные представления и иерархические составные виды. Рамка расширяема для других баз данных, и добавление SQL Server находится в ее поддерживаемой эволюции. Проверьте http://restsql.org.