[
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)