Return-Path: X-Original-To: apmail-geode-issues-archive@minotaur.apache.org Delivered-To: apmail-geode-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5819618FB6 for ; Fri, 11 Mar 2016 01:37:44 +0000 (UTC) Received: (qmail 48851 invoked by uid 500); 11 Mar 2016 01:37:44 -0000 Delivered-To: apmail-geode-issues-archive@geode.apache.org Received: (qmail 48821 invoked by uid 500); 11 Mar 2016 01:37:44 -0000 Mailing-List: contact issues-help@geode.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.incubator.apache.org Delivered-To: mailing list issues@geode.incubator.apache.org Received: (qmail 48812 invoked by uid 99); 11 Mar 2016 01:37:44 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 11 Mar 2016 01:37:44 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id B593B180558 for ; Fri, 11 Mar 2016 01:37:43 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.349 X-Spam-Level: X-Spam-Status: No, score=-4.349 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.329] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id Ba4lUuz9cSLJ for ; Fri, 11 Mar 2016 01:37:42 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id DF6C15F572 for ; Fri, 11 Mar 2016 01:37:41 +0000 (UTC) Received: (qmail 48806 invoked by uid 99); 11 Mar 2016 01:37:40 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 11 Mar 2016 01:37:40 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id A6D712C14F4 for ; Fri, 11 Mar 2016 01:37:40 +0000 (UTC) Date: Fri, 11 Mar 2016 01:37:40 +0000 (UTC) From: "Udo Kohlmeyer (JIRA)" To: issues@geode.incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (GEODE-1077) Change Function REST API so that all arguments can be passed into the REST function call as JSON document MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 Udo Kohlmeyer created GEODE-1077: ------------------------------------ Summary: 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 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. {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)