[ 
https://issues.apache.org/jira/browse/GEODE-2794?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Martell updated GEODE-2794:
-----------------------------------
    Description: 
Plain text is valid JSON, but is not supported by the REST API. Same issue for 
all primitive types: bool, number, arrays. Only objects are accepted.

Repro example below. Putting the same value from another client works, and we 
are able to get primitive values.
PUT /gemfire-api/v1/orders/234
Request body:
{code:javascript}"hello"{code}

Response:
HTTP 400
Response body:
{color:red}
{code:javascript}
{
  "cause": "Json doc specified is either not supported or invalid!"
}
{code}
{color}

Wrapping the same request as:
{code:javascript} {"value":"hello"} {code}
succeeds (HTTP 200, and entry is saved).

Experienced on Geode 9.0.2.

Possible scenarios:
# Session state info containing binary data could be managed manually by base 
64 encoding the entire session state object into a string (not boxed in another 
object).
# Images are binary data which could also be base 64 encoded to strings.
# If a user is already using Geode for write-through caching, some values may 
be primitive types and it is convenient and consistent to write them through 
Geode rather than stepping around the cache.

  was:
Plain text is valid JSON, but is not supported by the REST API. Same issue for 
all primitive types: bool, number, arrays. Only objects are accepted.

Repro example below. Putting the same value from another client works, and we 
are able to get primitive values.
PUT /gemfire-api/v1/orders/234
Request body:
{code:javascript}"hello"{code}

Response:
HTTP 400
Response body:
{color:red}
{code:javascript}
{
  "cause": "Json doc specified is either not supported or invalid!"
}
{code}
{color}

Wrapping the same request as:
{code:javascript} {"value":"hello"} {code}
succeeds (HTTP 200, and entry is saved).

Experienced on Geode 9.0.2.


> REST API Doesn't Accept Primitive Types as Values
> -------------------------------------------------
>
>                 Key: GEODE-2794
>                 URL: https://issues.apache.org/jira/browse/GEODE-2794
>             Project: Geode
>          Issue Type: Bug
>          Components: client/server, rest (dev)
>            Reporter: Michael Martell
>
> Plain text is valid JSON, but is not supported by the REST API. Same issue 
> for all primitive types: bool, number, arrays. Only objects are accepted.
> Repro example below. Putting the same value from another client works, and we 
> are able to get primitive values.
> PUT /gemfire-api/v1/orders/234
> Request body:
> {code:javascript}"hello"{code}
> Response:
> HTTP 400
> Response body:
> {color:red}
> {code:javascript}
> {
>   "cause": "Json doc specified is either not supported or invalid!"
> }
> {code}
> {color}
> Wrapping the same request as:
> {code:javascript} {"value":"hello"} {code}
> succeeds (HTTP 200, and entry is saved).
> Experienced on Geode 9.0.2.
> Possible scenarios:
> # Session state info containing binary data could be managed manually by base 
> 64 encoding the entire session state object into a string (not boxed in 
> another object).
> # Images are binary data which could also be base 64 encoded to strings.
> # If a user is already using Geode for write-through caching, some values may 
> be primitive types and it is convenient and consistent to write them through 
> Geode rather than stepping around the cache.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to