Zanurkuj w Pythonie/Debugowanie serwisu sieciowego SOAP: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Robwolfe (dyskusja | edycje)
Nie podano opisu zmian
Robwolfe (dyskusja | edycje)
Nie podano opisu zmian
Linia 1:
{{WEdycji}}
 
{{Podświetl|py}}
== Debugowanie serwisu sieciowego SOAP ==
Linia 62 ⟶ 60:
</ns1:getTemp>
 
# Nazwą elementu jest nazwa funkcji: <tt>getTemp</tt>. <tt>SOAPProxy</tt> używa <tt>getattr</tt> jako dyspozytora. Zamiast wywoływania poszczególnych metod lokalnych bazując na nazwie metody, używa on nazwy metody do skonstruowania dokumentu XML żądania.
# The element name is the function name, getTemp. SOAPProxy uses getattr as a dispatcher. Instead of calling separate local methods based on the method name, it actually uses the method name to construct the XML request document.
# The function'sElement XML-a elementdotyczący isfunkcji containedzawarty injest aw specifickonkretnej namespaceprzestrzeni nazw, whichktórą isto thejest namespaceta youpodana specifiedpodczas whentworzenia youinstancji created theklasy <tt>SOAPProxy object</tt>. Don'tNie worryprzejmuj aboutsię thetym <tt>SOAP-ENC:root</tt>; that'sto boilerplateteż toojest stały element.
# TheArgumenty argumentsfunkcji oftakże thezostały functionprzekształcone also got translated intona XML-a. <tt>SOAPProxy</tt> introspectsużywając eachintrospekcji analizuje każdy argument, toaby determineokreslić itsjego datatypetyp (inw thistym casewypadku it'sjest ato string). TheTyp argument datatypeargumentu goestrafia intodo theatrybutu <tt>xsi:type attribute</tt>, followeda byzaraz theza actualnim stringpodana jest jego valuewartość.
 
Zwracany dokument XML jest równie prosty do zrozumienia, jeśli tylko wiesz co należy zignorować. Skup się na tym fragmencie wewnątrz elementu <nowiki><Body></nowiki>:
The XML return document is equally easy to understand, once you know what to ignore. Focus on this fragment within the <Body>:
 
<ns1:getTempResponse #(1)
Linia 74 ⟶ 72:
</ns1:getTempResponse>
 
# TheSerwer serverzawarł wrapswartość thezwracaną functionprzez returnfunkcję valuew within aelemencie <tt><getTempResponse> element</tt>. ByZgodnie convention,z thiskonwencją wrapperten element isjest thenazwą namefunkcji ofplus the function, plussłowo Response. ButAle ittak couldnaprawdę reallyto bemoże almostbyć anythingprawie cokolwiek; theważną importantrzeczą thing thatjaką SOAPProxy noticesrozpatruje isnie notjest the elementnazwa nameelementu, butale theprzestrzeń namespacenazw.
# Serwer zwraca odpowiedź w tej samej przestrzeni nazw, której użyliśmy w żądaniu, tej samej przestrzeni nazw, którą podaliśmy, gdy po raz pierwszy tworzyliśmy obiekt klasy <tt>SOAPProxy</tt>. Dalej w tym rozdziale zobaczymy co się stanie, jeśli zapomnimy podać przestrzeń nazw podczas tworzenia obiektu <tt>SOAPProxy</tt>.
# The server returns the response in the same namespace we used in the request, the same namespace we specified when we first create the SOAPProxy. Later in this chapter we'll see what happens if you forget to specify the namespace when creating the SOAPProxy.
# Zwracana wartość jest podana wraz z jej typem (czyli float). <tt>SOAPProxy</tt> korzysta z tego typu danych do utworzenia właściwego wbudowanego typu danych Pythona i zwraca go.
# The return value is specified, along with its datatype (it's a float). SOAPProxy uses this explicit datatype to create a Python object of the correct native datatype and return it.