2009-12-10 5 views
0

현재 웹에 데이터를 보내면 XML 블록 인 문자열로 보내고 웹 서비스는 구문 분석하고 수행합니다 어떤 작품.ASP.net 웹 서비스에서 데이터 반환 및 보내기

마찬가지로 웹 서비스의 데이터가 필요할 경우 클라이언트 응용 프로그램이 구문 분석하는 XML 블록 인 문자열을 반환합니다.

이렇게하면 단점이 있습니다. 또한 우리는 serialize 된 형식을 XML로 반환해야합니까?

JD

답변

2

XML을 문자열로 보내 문자열로 반환하는 경우 REST를 사용할 수도 있습니다.

웹 서비스의 요점은 XML 직렬화 및 직렬화 해제 (마샬링/비 정렬 화)가 사용자를 대신하여 처리하기 때문에 복잡한 유형을 주변에 전달하거나 요청 객체를 입력으로 사용하고 Response 객체를 반환하는 것입니다.

당신은 아무런 노력없이 강력한 타이핑을 얻습니다.

1

필자는이 유형의 웹 서비스를 사용할 때 직렬화 된 방법을 선호합니다. 그러나 WCF는 ASMX 웹 서비스보다 많은 이점을 제공하므로 WCF를 살펴볼 수 있습니다.

1

단점의 몇 :

는 클라이언트가 XML의 구조뿐만 아니라 인수로 전달 된 XML의 구조를 알 필요가 웹 서비스를 호출하기 위해
  • 가 어떤 의미를 만들기 위해 반환
  • 당신은 성능
1

나는대로 웹 서비스 이전 인/아웃 방식의 XML을했습니다에 반영 더블 직렬화/역 직렬화를 수행하고 있습니다. 내가했을 때 "covenant"매개 변수 전달 모델을 시험해 보는 것이 었습니다. 전반적으로 잘 작동하여 구현하기 쉽고 수정하기가 쉽습니다.

필자가 수행 한 구현은 입력/출력 XML 용 스키마를 만든 다음 xsd를 사용하여 직렬화를위한 클래스를 생성하는 것입니다. 그래서 내 웹 서비스 내에서 강력하게 형식화 된 객체로 작업하고 xml에서 /로 직렬화하여 실제 요청 및 응답을 처리했습니다.

일부 전문가 인바운드 및 매개 변수 스키마 네임 스페이스의 새 버전을 만들어 outboud 모두 개정 매개 변수에 쉽게

  1. . 결과적으로 클라이언트가 호출하는 웹 메서드를 변경할 필요가 없습니다. 어쨌든 사용자 입력과 출력을 처리하는 방식이 변경됩니다.
  2. 역 호환성을 유지하는 데 도움이됩니다 - 1.0 네임 스페이스 요청을 보내고 당신은 1.0 네임 스페이스 응답을 얻지 못한다.
  3. 스키마에 대해 입력 XML의 유효성을 검사하고 개체 유형에 유효성 검사를 추가 할 수 있습니다.

일부 단점

    COM하면 제거 할 수있을 때 당신은 쉽게, 당신은 주위에 떠있는 웹 서비스 매개 변수의 서로 다른 버전의 번호를 가지고 지점으로 얻을 수 있었다 (
  1. 같은 개정 문제를 완전히?)
  2. 직렬화는 성능에 영향을 미칠 수 있습니다. 내 웹 서비스의 경우 큰 영향이 아니었지만 웹 서비스는 내 방식과 다른 처리량/요구 사항을 가질 수 있습니다.
0

SOAP 기반 웹 서비스와 달리 RESTful 웹 API에는 "공식적인"표준이 없습니다. 이는 REST가 아키텍처 스타일이고 SOAP은 프로토콜이기 때문입니다. REST는 표준 자체가 아니지만 대부분의 RESTful 구현은 HTTP, URI, JSON 및 XML과 같은 표준을 사용합니다. Check detail here

관련 문제