R API call example

Todo

update from S2 to G3

The code below allows you to call any function from the S1 API. It has 2 dependecies: the httr package for calling REST APIs and jsonlite for JSON manipulation.

# Example Geneea API call
#
###############################################################################

require(jsonlite)
require(httr)

GENEEA_API_URL <- "https://api.geneea.com/s2";
GENEEA_API_KEY <- <YOUR API KEY>;

textToJson <- function(text_vector, language = "") {
    if (language == "") { # langugage to be auto-detected
        return(toJSON(unbox(data.frame(text = text_vector))))
    } else {
        return(toJSON(unbox(data.frame(text = text_vector, lang = language))))
    }
}

geneeaApiCall <- function(api_function, text, language = "") {

    post.response <- POST(
            body = textToJson(text, language),
            url = paste(GENEEA_API_URL, api_function, sep ="/"),
            content_type("application/json;charset=utf-8"),
            add_headers(Authorization = paste("user_key", GENEEA_API_KEY))
    )

    parsed.value <- content(post.response, "parsed", "application/json")
    return(parsed.value)
}

result = geneeaApiCall("sentiment", "great text!", "en")
# The result will look like:
#
# $text
# [1] "great text!"
#
# $language
# [1] "en"
#
# $sentiment
# [1] 1
#
# $label
# [1] "positive"