[
https://issues.apache.org/jira/browse/OLINGO-1645?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Florent Albert updated OLINGO-1645:
-----------------------------------
Description:
Currently (as of Olingo 5.0.0), support for Open Type is limited to specifying
"OpenType=true" in the EDM.
However, parsing, serialization and deserialization of dynamic properties of
open types do not work.
The goal of this enhancement is to implement full support for open types,
including:
* Ability to deserialize a request body of an entity/complex type containing
dynamic properties.
** Create (POST)/Update (PATCH/PUT) requests
** Action parameters
* Ability to serialize dynamic properties in response bodies
** Note that when $select is specified and the dynamic property does not
exist, the request should be successful and the response should contain a null
value: [OData Version 4.01. Part 2: URL
Conventions|https://docs.oasis-open.org/odata/odata/v4.01/os/part2-url-conventions/odata-v4.01-os-part2-url-conventions.html#sec_SystemQueryOptionselect]
* Ability to parse dynamic properties passed in query parameters ($select,
$filter, $orderby)
** Parsed dynamic properties should be passed down to ExpressionVisitors and
ExpressionValidators
Ambiguous types (e.g. DateTimeOffSet and String) should be resolved according
to the _odata.type_ annotation when present, the _cast_ method when present or
the default logic specified here: [OData JSON Format Version
4.01|https://docs.oasis-open.org/odata/odata-json-format/v4.01/odata-json-format-v4.01.html#sec_ControlInformationtypeodatatype]
was:
Currently (as of Olingo 5.0.0), support for Open Type is limited to specifying
"OpenType=true" in the EDM.
However, parsing, serialization and deserialization of dynamic properties of
open types do not work.
The goal of this enhancement is to implement full support for open types,
including:
* Ability to deserialize a request body of an entity/complex type containing
dynamic properties.
** Create (POST)/Update (PATCH/PUT) requests
** Action parameters
* Ability to serialize dynamic properties in response bodies
** Note that when $select is specified and the dynamic property does not
exist, the request should be successful and the response should contain a null
value: [OData Version 4.01. Part 2: URL
Conventions|https://docs.oasis-open.org/odata/odata/v4.01/os/part2-url-conventions/odata-v4.01-os-part2-url-conventions.html#sec_SystemQueryOptionselect]
* Ability to parse dynamic properties passed in query parameters ($select,
$filter, $orderby)
** Parsed dynamic properties should be passed down to ExpressionVisitors and
ExpressionValidators
Ambiguous types (e.g. DateTimeOffSet and String) should be resolved according
to the _odata.type_ annotation when present, the _cast_ method when present
(unsupported by Olingo at the moment) or the default logic specified here:
[OData JSON Format Version
4.01|https://docs.oasis-open.org/odata/odata-json-format/v4.01/odata-json-format-v4.01.html#sec_ControlInformationtypeodatatype]
> Support for OpenType
> --------------------
>
> Key: OLINGO-1645
> URL: https://issues.apache.org/jira/browse/OLINGO-1645
> Project: Olingo
> Issue Type: Improvement
> Components: odata4-server
> Affects Versions: (Java) V4 4.10.0, Version (Java) V4 5.0.0
> Reporter: Florent Albert
> Priority: Major
>
> Currently (as of Olingo 5.0.0), support for Open Type is limited to
> specifying "OpenType=true" in the EDM.
> However, parsing, serialization and deserialization of dynamic properties of
> open types do not work.
> The goal of this enhancement is to implement full support for open types,
> including:
> * Ability to deserialize a request body of an entity/complex type containing
> dynamic properties.
> ** Create (POST)/Update (PATCH/PUT) requests
> ** Action parameters
> * Ability to serialize dynamic properties in response bodies
> ** Note that when $select is specified and the dynamic property does not
> exist, the request should be successful and the response should contain a
> null value: [OData Version 4.01. Part 2: URL
> Conventions|https://docs.oasis-open.org/odata/odata/v4.01/os/part2-url-conventions/odata-v4.01-os-part2-url-conventions.html#sec_SystemQueryOptionselect]
> * Ability to parse dynamic properties passed in query parameters ($select,
> $filter, $orderby)
> ** Parsed dynamic properties should be passed down to ExpressionVisitors and
> ExpressionValidators
> Ambiguous types (e.g. DateTimeOffSet and String) should be resolved according
> to the _odata.type_ annotation when present, the _cast_ method when present
> or the default logic specified here: [OData JSON Format Version
> 4.01|https://docs.oasis-open.org/odata/odata-json-format/v4.01/odata-json-format-v4.01.html#sec_ControlInformationtypeodatatype]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)