Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This quick how-to was written with python 2.7.11 and requests 2.8.1

Recommended reading Python Requests Quickstart
Tip
Note

PyVSS is now the supported and recommended method to interact with the RESTful API.

Step-by-step guide

The following steps demonstrate how gethow get_token.py workspy works:

  1. Import requests, sys, getpass and requests.auth.HTTPBasicAuth to handle endpoint authentication.

    Code Block
    languagepy
    import getpass
    import sys
    import requests
    from requests.auth import HTTPBasicAuth
  2. Get user from input and password via getpass.getpass() so it's not prompted.

    Code Block
    languagepy
    # input argument
    usr = sys.argv[1]
    # Prompt the user for a password without echoing.
    pwd = getpass.getpass()
  3. Set the authentication endpoint

    Code Block
    languagepy
    token_endpoint = 'https://vss-wsapi.eis.utoronto.ca:8001/auth/request-token'
  4. Make a POST request to token_request and create a new HTTPBasicAuth object initializing it with usr and pwd

    Code Block
    languagepy
    r = requests.post(url=token_endpoint, auth=HTTPBasicAuth(usr, pwd))
  5. Get JSON response body

    Code Block
    languagepy
    data = r.json()
  6. Print Error if any or the token if succeeded:

    Code Block
    languagepy
    if r.ok:
        print 'TOKEN={}'.format(data['token'])
    else:
        print 'ERROR: {} {}: {}'.format(r.status_code, data['error'], data['message'])

...

Code Block
languagepy
collapsetrue
#!/usr/bin/env python

# importing modules
import getpass
import sys
import requests
from requests.auth import HTTPBasicAuth

# input argument
usr = sys.argv[1]

# Prompt the user for a password without echoing.
pwd = getpass.getpass()

# authentication endpoint
token_endpoint = 'https://vss-wsapi.eis.utoronto.ca:8001/auth/request-token'

# making post request
r = requests.post(url=token_endpoint, auth=HTTPBasicAuth(usr, pwd))
data = r.json()

# getting token or printing error
if r.ok:
    print 'TOKEN={}'.format(data['token'])
else:
    print 'ERROR: {} {}: {}'.format(r.status_code, data['error'], data['message'])

...

Page Properties
hiddentrue
Related issues