Consuming HTTP Services in Python Transcripts
Chapter: Calling SOAP services from Python
Lecture: Concept: Using suds
0:01 So let's look at how we work with Soap services from suds in Python.
0:06 It all begins with the wsdl, as we've seen and then we can use the wsdl
0:10 plus the suds package to generate a suds proxy or suds client.
0:15 Now, this suds proxy knows all he structure and schema and operations
0:20 that the Soap web service wants to call, that the Soap web service provides.
0:25 So once we have the proxy, it knows how to do the Soap exchange
0:29 basically seamlessly to us and afterwards, we just work with this local class
0:33 that is created at runtime with suds and everything looks pretty easy, in code,
0:38 we just import the client from suds.client, we have our url to the wsdl,
0:43 and we just allocate an instance of the client class
0:48 and provided the wsdl, boom, we're done.
0:51 Now it's parsed and understood that web service description language
0:54 it gives us this client which has a service property, and on there,
0:58 we can call functions which will map dynamically to the operations on the server.
1:02 Now, you may want to know exactly what this client thinks the operations are,
1:08 so we've seen that we can just print it out and we get a really nice listing
1:13 of what the operations and rich types are, so if we print this,
1:18 we get something like this, service blog and it's going to have a couple of ports,
1:22 these are actually the various soap 1 and soap 1.2 formats
1:28 that it supports but typically they are identical,
1:31 and here our example had 5 methods and 2 rich types,
1:35 that array of posts I'd really like to see that just come back as a list
1:38 but hey, it's not that big of a deal, alright, so we have our all post,
1:42 create post, delete post, and these are normally verbs,
1:45 not nouns like we have in the http restful services,
1:48 where the verbs are actually the actions we take on the nouns,
1:51 here these are things like delete post
1:54 or create post or get me the post, stuff like that.
1:57 Once you know what the operations are and the signatures of them,
2:00 you are going to want to call those functions, right,
2:02 so we are going to make sure we've already got the client,
2:05 we've got the client created from the wsdl,
2:08 and then we just say client.service and we start calling these operations,
2:11 any time you see an array of thing, you know,
2:14 the arrays actually contained in the first element of that tuple that comes back there,
2:18 and then these come back already parsed into post objects,
2:22 so we can say post.Title and post.ViewCount.
2:25 We can also call functions that take parameters so client.service.UpdatePost
2:29 it takes a post id, title, content and a view count.