Consuming HTTP Services in Python Transcripts
Chapter: The service landscape
Lecture: Service type: HTTP and REST
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
Alright, next up, the majority of services that you are going to see, are going to be HTTP restful services.
0:07
Be careful using the word restful because just certain people restful means very specific set of criteria,
0:14
that most HTTP Json based services don't actually meet. Maybe they are 75% restful or whatever, so I am going to try to use HTTP services
0:23
but these are more or less restful services for their features, even if they are not entirely complete.
0:30
So how does this work, well, we have our app, and again we are going to do an HTTP request and again, this is going to go over HTTP
0:35
but this time it's going to be a get request and it's going to be a get request against something that is a noun not a verb.
0:42
And this time we are going to request API/users/7 indicating we want the details about user 7 and what we are going to get back
0:49
from the server, is going to be a Json message with the name Michael and id 7, presumably, we even get more information,
0:58
but just keeping it simple for the slides here. So what are the benefits? Well, there are many.
1:03
This is universally accessible, this service is universally accessible, almost every platform has decent support for basic HTTP string exchange.
1:14
This is super easy to do from Python, this is super easy to do from Javascript, as well as C, ObjectiveC, swift, you name it, we can call this function
1:24
from basically anything that will talk to a network. Because it's HTTP and it follows the get post put standard HTTP verbs,
1:32
it's firewall friendly, proxy friendly and for example this request is potentially cashable.
1:37
Reading this message name Michael id 7, is ridiculously easy, it's entirely human readable, and while it's not as light weight
1:46
as the binary exchange it's dramatically more lightweight than what we would get if this was a Soap message,
1:54
I've put this in the relatively light weight bandwidth story. There is some drawbacks, it's often that you will find these services
2:03
that are not self-describing, there is some tooling called swagger that you can add to the server's side and then use some tooling on the client side
2:10
to help describe and generate proxies and things like that but, generally speaking, these services are not self-describing and like I said,
2:18
if the thing you are absolutely maximizing is bandwidth exchange, well maybe raw sockets would be that, but if it's got to go over the internet,
2:26
this is about as good as it's going to get.