2011-08-22 6 views
10

우리는 웹 응용 프로그램 프레임 워크를 사용하여 SQL Server 데이터베이스를 쿼리하고 결과를 XML로 얻을 수 있어야하는 응용 프로그램을 작성했습니다.XML을 얻기 위해 REST를 통해 SQL Server를 쿼리하는 방법

이전에는 프레임 워크가 그 기능을 제공했습니다. 하지만이 기능은 현재 사용되지 않습니다.

프레임 워크를 사용하면 HTTP를 통해 REST 서비스를 쉽게 쿼리 할 수 ​​있으므로 SQL Server HTTP 끝점을 사용하지 않는 것이 좋습니다. 그러나 우리는 SQL Server 2008 에서처럼 HTTP 끝점이 더 이상 사용되지 않는다는 사실을 읽었습니다. 향후 아키텍처를 설계 할 플랫폼이 아닙니다.

Azure (이전의 SQL Data Services)는 유사한 서비스를 제공했지만 현재는 http가 아닌 TDS 프로토콜 만 지원합니다. 따라서 Azure에서 REST를 찾을 수 없습니다.

대안은 WCF Data Services (이전 ADO.NET Data Services)를 사용하여 사용자 지정 응용 프로그램을 개발하는 것입니다. 하지만 이는 아마도 SQL Server와는 별도의 자체 인증 설정과 자체 소스 코드 저장소를 통해 개발, 배포 및 유지 관리하는 추가 앱을 의미 할 것입니다. 경험이없는 기술을 사용하므로 자체적 인 깊은 학습 곡선.

REST/HTTP를 통해 SQL Server 데이터베이스를 쿼리하는 다른 방법을 권장합니다.이 쿼리는 더 이상 사용되지 않으며 XML로 결과를 반환합니까?

도움 주셔서 감사합니다.

답변

5

여기에서 읽으십시오 : Creating an OData API for StackOverflow including XML and JSON in 30 minutes. 기본적으로, 앞으로가는 길은 REST가 앱 계층 (OData 매핑을 제공하는 WCF EF를 제공)에 의해 제공되는 것입니다. IMHO 엔진에 대한 직접적인 HTTP 액세스는 시작하기에 매우 좋지 않은 아이디어였습니다. 아무도 SQL Server 2005의 HTTP Endpoints를 좋아하지 않았으며, 오해가있었습니다. HTTP 오류 모델, 보안, 유형 시스템을 SQL로 맵핑 할 수 없으며 원활한 상호 운용성을 기대합니다. HTTP 계층을 전용 응용 프로그램에 사용하게되면 HTTP 에코 시스템 처리 기능 (WCF)과 해당 작업 (EF)에 특화된 구성 요소의 DB 모델에 REST 모델을 매핑하는 논리가 생깁니다.

+0

우리가 WCF/ADO.NET 경로를 결정하면이 자습서를 사용하면 더 쉽게 사용할 수 있습니다. 그러나이 질문에 설명 된대로 우리는 추적 프로세스, 배포 및 관리 할 관련 아티팩트 세트와 함께 완전히 새로운 툴 체인 (VS 및 그 구성 요소/확장)을 개발 프로세스에 추가해야하기 때문에이 작업을 수행하기를 꺼립니다. 더욱이이 기술에 익숙하지 않으면 인공물이 무엇이고 어떤 물체를 추적해야하는지조차 알지 못합니다. – LarsH

+0

그래, 당신은 왜 HTTP 엔드 포인트가 사라 졌는지에 대한 좋은 근거를 주었다. "아무도 좋아하지 않는다"에 관해서는, 나는 동의하지 않을 것이다. 그러나 아마 likers는 약한 충고이었다. 어쨌든 더 나은 옵션이없는 것 같습니다. – LarsH

3

MS 스택에 집착 될 수도 있지만 그렇지 않은 경우 MySQL 또는 PostgreSQL 상단의 Java EE 컨테이너 (Tomcat, WebLogic 등)에서 restSQL을 사용할 수 있습니다. restSQL에는 JSON 또는 XML 인코딩을 사용하는 전체 HTTP API가 있습니다. 업데이트 가능한 합성보기와 계층 적 합성보기라는 두 가지 단서를 제공합니다. 이 프레임 워크는 다른 데이터베이스로 확장 가능하며 SQL Server의 추가는 지원되는 진화 단계에 있습니다. http://restsql.org을 확인하십시오.

+0

감사합니다 ... 다음 번에이 문제를 살펴볼 때이를 명심하십시오. 우리가 당분간 MS SQL Server에 상당히 매료되어 있다는 것은 사실입니다. – LarsH

+0

이 필요하지만 .. MS SQL Server 지원 : / –

관련 문제