In [ ]:
from urllib import request

sourceBytes = '                                                         \n\
  public Map<String, Object> data = new HashMap<String, Object>();      \n\
                                                                        \n\
  public void initialize(Map<String, Object> args) {                    \n\
    data.put("url", "http://demo.pipeline.io:9040/prediction/");        \n\
  }                                                                     \n\
                                                                        \n\
  public Object predict(Map<String, Object> inputs) {                   \n\
    try {                                                               \n\
      String userId = (String)inputs.get("userId");                     \n\
      String itemId = (String)inputs.get("itemId");                     \n\
      String url = data.get("url") + "/" + userId + "/" + itemId;       \n\
                                                                        \n\
      return org.apache.http.client.fluent.Request                      \n\
        .Get(url)                                                       \n\
        .execute()                                                      \n\
        .returnContent();                                               \n\
                                                                        \n\
    } catch(Exception exc) {                                            \n\
      System.out.println(exc);                                          \n\
      throw exc;                                                        \n\
    }                                                                   \n\
  }                                                                     \n\
'.encode('utf-8')

In [ ]:
from urllib import request

name = 'codegen_httpclient'
# Note:  Must have trailing '/'
update_url = 'http://<your-ip>:39041/update-codegen/%s/' % name

update_headers = {}
update_headers['Content-type'] = 'text/plain'

req = request.Request("%s" % update_url, headers=update_headers, data=sourceBytes)
resp = request.urlopen(req)

generated_code = resp.read()
print(generated_code.decode('utf-8'))

In [ ]:
from urllib import request

name = 'codegen_httpclient'
# Note:  Must have trailing '/'
update_url = 'http://<your-ip>:39041/update-codegen/%s/' % name

update_headers = {}
update_headers['Content-type'] = 'text/plain'

req = request.Request("%s" % update_url, headers=update_headers, data=sourceBytes)
resp = request.urlopen(req)

generated_code = resp.read()
print(generated_code.decode('utf-8'))

In [ ]:
from urllib import request

name = 'codegen_httpclient'
evaluate_url = 'http://<your-ip>:39041/evaluate-codegen/%s' % name

evaluate_headers = {}
evaluate_headers['Content-type'] = 'application/json'
input_params = '{"userId":"21619", "itemId":"10006"}' 
encoded_input_params = input_params.encode('utf-8')

req = request.Request(evaluate_url, headers=evaluate_headers, data=encoded_input_params)
resp = request.urlopen(req)

print(resp.read()) # Should return float

In [ ]:
from urllib import request

name = 'codegen_httpclient'
evaluate_url = 'http://<your-ip>:39041/evaluate-codegen/%s' % name

evaluate_headers = {}
evaluate_headers['Content-type'] = 'application/json'
input_params = '{"userId":"21619", "itemId":"10006"}' 
encoded_input_params = input_params.encode('utf-8')

req = request.Request(evaluate_url, headers=evaluate_headers, data=encoded_input_params)
resp = request.urlopen(req)

print(resp.read()) # Should return float