Feral Cat

Building just because.
python

Making a Python Wrapper for your REST API

Need help making a Python Wrapper for your REST API? Python is my personal favorite programming language. So when somebody approaches me with a problem that involves a REST API, I immediately go to Python. That being said, calling REST API’s can unfortunately be a little ugly in the language. I’ll show you how to turn an ugly multi line API call into a beautiful and efficient one.

My Setup

  • Python 3.x
  • Windows 10 Pro

Without A Wrapper

Wrapper’s simplify code and make calling consistently used APIs more intuitive. That being said, if you only need to call an API once then I would personally avoid the extra work. This is how we’d call an API without spending the time on a wrapper. We’ll be using the Google Translate API for this example. You can find some relevant info here.

import requests
response = requests.get('https://translation.googleapis.com/language/translate/v2/languages?key=YOUR_KEY_HERE')
info = response.json()

So it’s all around just ugly in my opinion. The URL is too long and your key is everywhere.

Making a Python Wrapper for your REST API

import requests
class Translate():
    
    def __init__(self, api_key):
        session = requests.Session()
        self.session = session
        self.key=api_key
    def get_languages(self):
        response = requests.get('https://translation.googleapis.com/language/translate/v2/languages?key='+self.key)
        info = response.json()
        return info

Using the Wrapper

So we created a translate class. Lets create a translate object and pull the associated languages using the following.

translate = Translate('API_KEY')
translate.get_languages()

It’s short and clean. It’s straight to the paint. Do you need all the languages? Call the get_languages method on the translate object and you’re done! Happy coding!

Leave a Reply

Your email address will not be published. Required fields are marked *