title | nav_order |
---|---|
SuAVE APIs |
8 |
In the following requests, may be suave-stage.sdsc.edu, suave-dev.sdsc.edu, or suave2.sdsc.edu
Request | Format | Example | Note |
---|---|---|---|
Getting a previously saved snapshot: | http:///snapshot/ | http://suave-dev.sdsc.edu/snapshot/57a3e5f3efba572faafdd526 | Returns web page |
Public view of a personal survey gallery | http:///gallery/ | http://suave-dev.sdsc.edu/gallery/zaslavsk | Returns web page |
Open SuAVE application | http:///main/file=&views=&view= | http://suave-dev.sdsc.edu/main/file=zaslavsk_GRSciColl.csv&views=1110101&view=grid In this case, “1110101” indicates that: “grid” view will be shown; “bucket” view will be shown; “crosstab” view will be shown; “qca” view will not be shown; “map” view will be shown; “R” view will not be shown; “Jupyter” view will be shown. | Opens SuAVE app for a specified dataset and views. SuAVE v2 has additional URL parameters described in the “Crowdsourcing” section. |
Download survey data file | http:///getSurveys/ | http://suave-dev.sdsc.edu/getSurveys/zaslavsk_GRSciColl-Collections.csv | |
Administration interface, showing a list of user surveys | http:///home | http://suave-dev.sdsc.edu/home | |
Administration interface, showing a list of annotations over user surveys | http:///comments | http://suave-dev.sdsc.edu/comments |
In the code fragment below, consider the POST request which takes the following parameters:
r = requests.post(upload_url, files=csv, data=upload_data, headers=headers)
Input | Description | Example | Notes |
---|---|---|---|
upload_url | SuAVE server URL to publish the survey to, plus “uploadCSV” | upload_url = ‘http://suave-dev.sdsc.edu/uploadCSV’ | |
files | pointer to a data file for the new survey | new_file = ‘../../temp_csvs/zaslavsk_datafile_v1.csv’ csv = {“file”: open(new_file, “rb”)} files=csv | the data file should be materialized in the ‘temp_csvs’ directory, eg from a Pandas dataframe as df.to_csv(new_file, index=None) |
data | additional survey attributes to post, including user name, dzc filem and survey name | survey_name=’New Survey’ dzc_file=’https://maxim.ucsd.edu/dzgen/lib-staging-uploads/bf7b12729303d827835937c0fa913c5c/content.dzc’ user=’zaslavsk’ data = { ‘name’: survey_name, ‘dzc’: dzc_file, ‘user’:user } | user must be logged in SuAVE for successful POST |
headers | request headers, including referer and user agent. Referer is the root server URL | referer = ‘http://suave-dev.sdsc.edu/’ headers = { ‘User-Agent’: ‘suave user agent’, ‘referer’: referer } |
See code examples in SuAVE notebooks, and below:
referer = survey_url.split("/main")[0] +"/"
upload_url = referer + "uploadCSV"
new_survey_url_base = survey_url.split(user)[0]
import requests
import re
csv = {"file": open(new_file, "rb")}
upload_data = {
'name': input_text.value,
'dzc': dzc_file,
'user':user
}
headers = {
'User-Agent': 'suave user agent',
'referer': referer
}
r = requests.post(upload_url, files=csv, data=upload_data, headers=headers)
if r.status_code == 200:
printmd("<b><span style='color:red'>New survey created successfully</span></b>")
regex = re.compile('[^0-9a-zA-Z_]')
s_url = survey_name
s_url = regex.sub('_', s_url)
url = new_survey_url_base + user + "_" + s_url + ".csv" + "&views=" + views + "&view=" + view
print(url)
printmd("<b><span style='color:red'>Click the URL to open the new survey</span></b>")
else:
printmd("<b><span style='color:red'>Error creating new survey. Check if a survey with this name already exists.</span></b>")
printmd("<b><span style='color:red'>Reason: </span></b>"+ str(r.status_code) + " " + r.reason)