Skip to content

Instantly share code, notes, and snippets.

@manuelep
Created February 26, 2018 16:34
Show Gist options
  • Save manuelep/c9503221276f287067165daa76e10e33 to your computer and use it in GitHub Desktop.
Save manuelep/c9503221276f287067165daa76e10e33 to your computer and use it in GitHub Desktop.
wooapitest
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests, urlparse
import json
import argparse
import logging
parser = argparse.ArgumentParser(
description = """DOC""",
formatter_class = argparse.RawTextHelpFormatter
)
parser.add_argument("-p", "--path",
help = "Pasth",
type = lambda v: v.split("/"),
default = ["wp-json", "wc", "v1", "products"]
)
parser.add_argument("-b", "--base-url",
help = "Host to call.",
dest = "host"
)
parser.add_argument("-L", "--Log",
help = "Log level",
default = "info",
dest = "log"
)
parser.add_argument("-P", "--Propagate",
# help = "",
action = 'store_true',
default = False,
dest = "propagate"
)
parser.add_argument("-k", "--key",
help = "API key",
)
parser.add_argument("-s", "--secret",
help = "API secret",
)
args = parser.parse_args()
def _get_logger_():
try:
level = int(args.log)
assert level%10==0 and 0<=level<=50
except ValueError:
level = getattr(logging, args.log.upper())
logging.basicConfig(
format = "\t %(asctime)-15s %(levelname)s %(funcName)s @ %(lineno)s says: '%(message)s'",
level = level
)
logger = logging.getLogger()
logger.setLevel(level)
handler = logging.StreamHandler()
handler.setLevel(level)
logger.addHandler(handler)
logger.propagate = args.propagate
return logger
logger = _get_logger_()
def call_api(host, *path):
""" Fetch data from API REST service
host @string : Called host
path @list : uri path to request
"""
URL = urlparse.urljoin(host, "/".join(path))
logger.debug(URL)
res = requests.post(URL, auth=(args.key, args.secret,))
logger.debug(res.text)
return res.text
if __name__=='__main__':
body = call_api(args.host, *args.path)
logger.info(json.dumps(json.loads(body), indent=4))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment