как запросить SQL Server через REST, чтобы получить XML - PullRequest
11 голосов
/ 23 августа 2011

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

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

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

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

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

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

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

Ответы [ 3 ]

6 голосов
/ 23 августа 2011

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

3 голосов
/ 03 августа 2012

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

1 голос
/ 28 апреля 2018

Другой вариант - что-то вроде Dreamfactory . У них есть решение SOAP to REST, которое позволяет подключаться к любой базе данных или услуге. В прошлом я использовал их бесплатное размещенное решение для проектов. У них также есть решение с открытым исходным кодом. Крутая вещь в сервисе заключается в том, что они используют Swagger 3.0 для создания определений сервиса в хорошем внешнем решении, чтобы вы могли тестировать и создавать новые конечные точки.

Я использовал определения OpenAPI 3.0 для подключения к сторонним сервисам SOAP и REST. Они также поддерживают хранимые процедуры и сценарии на стороне сервера в средах SQL Server.

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

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