[
https://issues.apache.org/jira/browse/GEODE-1077?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
William Markito Oliveira updated GEODE-1077:
--------------------------------------------
Labels: gsoc2016 (was: )
> Change Function REST API so that all arguments can be passed into the REST
> function call as JSON document
> ---------------------------------------------------------------------------------------------------------
>
> Key: GEODE-1077
> URL: https://issues.apache.org/jira/browse/GEODE-1077
> Project: Geode
> Issue Type: Improvement
> Components: rest (dev)
> Reporter: Udo Kohlmeyer
> Labels: gsoc2016
>
> Currently the Function REST API requires that all arguments, except the
> function arguments, are specified on the URL. This will work for
> groups,regions and members but this does not scale for filters.
> As filter keys can be non-string based and could be in the thousands, this
> method will not work.
> I think that all Function params should be able be included in the JSON
> document that is sent to the function. This will allow the user to provide
> higher volumes of keys and non-String based keys.
> In order for this to work, the current JSON document needs to be "formalised"
> into a proper data object, which will lend itself to be better transformed
> from JSON to the relevant arguments. Currently the transformer is limited to
> String only.
> Where as groups,members and filters can all be String[]/List<String>.
> {code:xml}
> [
> {
> "onGroups":[
> "group1",
> "group2"
> ],
> "filter":[
> "key1",
> "key2"
> ],
> "onRegions":[
> "accounts",
> "orders"
> ],
> "arguments":[
> {
> "@type":"double",
> "@value":210
> },
> {
> "@type":"com.gemstone.gemfire.web.rest.domain.Item",
> "itemNo":"599",
> "description":"Part X Free on Bumper Offer",
> "quantity":"2",
> "unitprice":"5",
> "totalprice":"10.00"
> }
> ]
> }
> ]
> {code}
> But we could then expand the filter component even further
> {code:xml}
> [
> {
> "filter":[
> {
> "@type":"com.gemstone.gemfire.domain.CustomKey",
> "itemNo":{
> "@type":"double",
> "@value":"112"
> },
> "department":"Sales"
> },
> {
> "@type":"com.gemstone.gemfire.domain.CustomKey",
> "itemNo":{
> "@type":"double",
> "@value":"334"
> },
> "department":"Sales"
> }
> ]
> }
> ]
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)