개요
"Suds" 웹 서비스 클라이언트는 LGPL로 라이선스된 python용 경량 soap 기반 클라이언트입니다.
자세한 내용은 다음을 참조하십시오:
릴리스 노트:
버전 0.3.6 (04-31-09):
- 하드코딩된 /tmp/suds를 tempfile.gettempdir()로 변경하고 suds/를 필요 시 생성.
- Any.get_attribute()의 반환 타입 수정.
- file:// URL을 무시하도록 http 캐싱 업데이트.
- 응답만 주입될 때 메시지 로깅 개선.
- XInteger 및 XFloat 타입이 반환된 배열을 올바르게 변환하도록 수정.
- 동일한 네임스페이스를 가진 xs:import 스키마 수정.
- 외부 참조를 로드하지 않도록 파서를 업데이트하고 XMLSchema.xsd 위치에 Import.bind() 추가.
- 스키마 닥터 추가 - 런타임에 XSD를 패치하는 데 사용. (Option.doctor 참조)
- python 2.6의 deprecation 경고 수정.
- 에 정의된 @default에 대한 동작 추가.
- @xsi:type 값이 doc/literal에 대해 항상 qualified되도록 변경. (0.3.5 변경 사항 되돌림).
- @xsi:type이 qualified되는 시점을 제어하는 Option.xstq 옵션 추가.
- 수정된 티켓: #64, #129, #205, #206, #217, #221, #222, #224, #225, #228, #229, #230
버전 0.3.5 (04-16-09):
- http 캐싱 추가. 기본값은 (1)일. 메서드 호출에는 적용되지 않음. 자세한 내용은 문서 참조.
- 더 이상 < fc9 빌드를 지원하지 않으므로 spec에서 fedora 버전 확인 제거.
- tar.sh로 tarball을 생성하도록 makefile 업데이트.
- document/literal에 대한 bare/wrapped 판정을 wsdl로 이동.
- Transport를 패키지로 리팩토링 (http 헤더 로깅 개선).
- 수정된 티켓: #207, #209, #210, #212, #214, #215
버전 0.3.4 (02-24-09):
- Import.bind('http://schemas.xmlsoap.org/soap/encoding/')을 정적(자동)으로 적용,
사용자가 더 이상 직접 수행할 필요 없음.
- {{{UsernameToken}}} 및 평문(clear-text) 비밀번호만 사용하는 기본 ws-security.
- 딕셔너리를 전달하여 ''sparse'' soap 헤더 지원 추가.
- 임의의 사용자 정의 soap 헤더 지원 추가.
- 여러 soap 헤더 항목이 있는 서비스 작업 수정.
- 스키마 로딩 및 역참조(dereferencing) 알고리즘 개선.
- 중첩된 soap multiref 수정.
- elementFormDefault="unqualified"에 대한 더 나은(실제) 지원으로 더 정확한
네임스페이싱 제공.
- WSDL part 타입이 더 이상 기본적으로 WSDL targetNamespace를 사용하지 않음.
- 수정된 티켓: #4, #6, #21, #32, #62, #66, #71, #72, #114, #155, #201.
버전 0.3.3 (11-31-08):
버전 0.3.2 (11-7-08):
- SOAP {{{MultiRef}}} 지원 ''(1차로 r300에서 추가됨)''
- 새 스키마 태그 지원 추가:
- 새 xs <--> python 타입 변환 지원 추가:
- xs:int
- xs:long
- xs:float
- xs:double
- 생성된 노드의 네임스페이싱을 더 정밀하게 하도록 marshaller 및 binding 수정.
- 스키마 로딩 중 ''xsd'' 패키지 dereference()의 무한 재귀 수정.
- 스키마 파일을 wsdl 루트 로 가져오는 wsdl:import/ 지원 추가.
- (&) 이중 인코딩 수정.
- Client API 추가:
- setheaders() - 키워드와 동일하지만 모든 호출에 적용.
- addprefix() - 네임스페이스 접두어 매핑.
- setlocation() - wsdl의 위치를 재정의. 모든 호출에 적용된다는 점을 제외하면 키워드와 동일.
- setproxy() - proxy 키워드와 동일하지만 모든 호출에 적용.
- soap 헤더에 올바른 네임스페이스 접두어 추가.
- 수정된 티켓: #5, #12, #34, #37, #40, #44, #45, #46, #48, #49, #50, #51
버전 0.3.1 (10-1-08):
- 0.3 릴리스가 멀티포트 서비스 정의 작업을 불필요하게 어렵게 만든 데 대한 빠른 후속 조치.
고민 끝에(그리고 충분한 숙면 후에),
몇 가지 변경만으로 훨씬 쉬워질 수 있다는 것이 분명해졌습니다: 1) non-soap 바인딩을 걸러냅니다 -
실제 문제를 일으키는 원인이었습니다; 2) 대부분의 서버는 어떤 soap 바인딩(soap 1.1 및 1.2)이든
수용하므로, 포트 자격 없이 메서드를 호출할 때 메서드에 대한 모호한 참조는
거의 모든 경우에 문제없이 작동합니다. 그렇다면 suds가 포트를 선택하도록 그냥 두는 것이 좋겠죠.
필요하지 않은데 사용자가 직접 하게 하지 맙시다. 대부분의 경우 0.2.9 및 이전 버전 사용자는
0.3에서처럼 0.3.1로 이동할 때 코드를 업데이트할 필요가 없습니다.
버전 0.3 (9-30-08):
-
0.2.9에서 도입된 멀티포트 서비스 지원을 확장. 이 추가 기능은
여러 서비스가 동일한 메서드를 정의할 수 있게 하며 suds가
이를 올바르게 처리합니다. 'SERVICES WITH MULTIPLE PORTS:' 섹션을 참조하십시오.
-
멀티도큐먼트 document/literal soap 바인딩 스타일 지원 추가.
'MULTI-DOCUMENT Docuemnt/Literal:' 섹션을 참조하십시오.
-
(xs:group, xs:attributeGroup) 태그 지원 추가.
-
Client.last_sent() 및 Client.last_received() 추가.
버전 0.2.9 (9-09-08):
- 서비스 내 여러 포트 지원.
- 속성 참조 <xs:attribute ref=""/>
- sax 패키지의 XML 특수 문자 인코더를 플러그형으로 변경.
버전 0.2.8 (8-28-08):
-
가 참조하는 문서 루트를 항상 전송하도록 document/literal 바인딩 업데이트.
공간과 사용자 입력을 다시 검토한 결과, 참조된 요소는 항상 문서 루트인 것으로 보입니다.
-
'binding' schemaLocation을 namespace-uri에 바인딩하는 지원 추가.
이는 schemaLocation을 지정하지 않으면서도 스키마가 다운로드되기를 기대하는
import를 위한 것입니다. 예: Axis는 schemaLocation 없이
'http://schemas.xmlsoap.org/soap/encoding/'을 참조합니다. 따라서 다음과 같이 수행하면:
from suds.xsd.sxbasic import Import.
Import.bind('http://schemas.xmlsoap.org/soap/encoding/')
스키마가 schemaLocation에 바인딩되어 다운로드됩니다.
-
기본 unmarshaller는 /schema/가 필요하지 않음.
리팩토링 중 제거되었어야 했지만 누락되었습니다.
-
kwargs를 send()에 전달하고 wsdl의 서비스 위치를 재정의하는 /location/ kwarg를
추가하도록 client 업데이트.
-
요소 및/또는 속성을 나타내면서 *선택적(optional)*이고 값이 None인 객체 속성에 대해
XML을 생성하지 않도록 marshaller 업데이트.
* 모든 속성을 포함하도록 factory (builder) 업데이트.
* SchemaObject에 optional() 메서드 추가.
-
지정된 경우 작업의 네임스페이스를 재정의하도록 wsdl 업데이트.
-
스키마 로딩 문제 수정 - import를 처리하기 전에 모든 스키마를 빌드.
-
fedora 제출 준비를 위해 패키징 업데이트.
버전 0.2.7 (8-11-08):
- document/literal - wrapped 및 unwrapped 탐지/지원 추가.
- document/literal {wrapped}가 ( 아래의) 문서 루트를
래퍼 요소(적절한 네임스페이스 포함)로 설정하도록 업데이트.
- maxOccurs를 갖는 , 및 지원 추가.
이로 인해 unmarshaller는 무제한(unbounded) 컬렉션에 포함된 요소의 값을
리스트로 설정합니다.
- '사용자'가 어떤 자식을 포함할지 직접 결정해야 하므로 의 자식을 생략하도록
client.factory (builder) 업데이트.
- 가져온 스키마의 타입이 다시 평탄화되지 않도록 평탄화 알고리즘 업데이트.
- 평탄화/병합 알고리즘 조정.
버전 0.2.6 (8-5-08):
- xsd 패키지 개편 중 깨진 ENUM 수정.
- 티켓 #24에 정의된 타입 수정.
- 티켓 #30에서 보고된 메서드 시그니처의 중복 파라미터 이름 수정.
- Suds를 LGPL로 라이선스.
- 티켓 #31의 패치에서 제안한 대로 suds.init()의 로깅 설정 제거. 이제 사용자는
로거를 직접 구성해야 합니다.
- Client.Factory.create() 대체 구문 지원 추가: 빌드할 타입을
{namespace}name 형식으로 완전히 한정. 예: client.factory.create('{http://blabla.com/ns}Person')
버전 0.2.5 (8-01-08):
-
(XSD) 패키지 개편. 이 새로운 (병합) 방식은 더 단순하고
더 안정적이며 유지보수하기 쉬울 것입니다. 또한 병합된 스키마가 딕셔너리 조회를 통해
조회를 수행하므로 더 나은 성능을 제공할 것입니다.
이 개편으로 현재의 TypeNotFound 및 xs:extension/ 문제가 해결되기를 바랍니다 :-).
-
dateTime 출력 버그 수정.
-
자신을 포함하는 xsd 타입에 대한 builder.Builder의 무한 재귀 방지 추가.
버전 0.2.4 (7-28-08):
- WSDL import 지원 추가: wsdl:import/
- xsd<->python 타입 변환 지원 추가 (감사: Nathan Van Gheem) 대상:
- xs:date
- xs:time
- xs:dateTime
- 수정:
- 버그: schemaLocation이 지정된 Schema .
- 버그: client/proxy가 출력되기 전까지 서비스 설명에 지정된 네임스페이스가 유효하지 않음.
버전 0.2.3 (7-23-08):
버전 0.2.2 (7-8-08):