[
https://issues.apache.org/jira/browse/FLINK-15787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17025797#comment-17025797
]
Chesnay Schepler commented on FLINK-15787:
------------------------------------------
I think I have found a fairly lightweight way of doing this:
As an example, this is the current {{TriggerResponse}}:
{code}
public class TriggerResponse implements ResponseBody {
private static final String FIELD_NAME_REQUEST_ID = "request-id";
@JsonProperty(FIELD_NAME_REQUEST_ID)
private final TriggerId triggerId;
...
public TriggerId getTriggerId() {
return triggerId;
}
}
{code}
This is a modified version that
a) accepts both naming schemes during deserialization, with a single field
b) writes the same field using both naming schemes during serialization
{code}
public class TriggerResponse implements ResponseBody {
private static final String FIELD_NAME_REQUEST_ID = "requestId";
private static final String LEGACY_FIELD_NAME_REQUEST_ID = "request-id";
@JsonProperty(FIELD_NAME_REQUEST_ID)
@JsonAlias(LEGACY_FIELD_NAME_REQUEST_ID)
private final TriggerId triggerId;
...
@JsonProperty(LEGACY_FIELD_NAME_REQUEST_ID)
public TriggerId getTriggerId() {
return triggerId;
}
}
{code}
This should be a fairly mechanical change, without requiring any modifications
to handlers.
The REST API docs generator will spit out both fields for responses, but I
don't see a way around that.
> Upgrade REST API response to remove '-' from key names.
> -------------------------------------------------------
>
> Key: FLINK-15787
> URL: https://issues.apache.org/jira/browse/FLINK-15787
> Project: Flink
> Issue Type: Improvement
> Components: Runtime / REST
> Affects Versions: 1.10.0
> Reporter: Daryl Roberts
> Assignee: Chesnay Schepler
> Priority: Major
> Fix For: 1.11.0
>
>
> There are some REST API responses that include keys with hyphens in them.
> This results in the frontend having to use string-lookups to access those
> values and we lose the type information when doing that.
> Example from {{/jobs/<jobid>/vertices/<vertex>/backpressure}}
> {{export interface JobBackpressureInterface {}}
> {{ status: string;}}
> {{ 'backpressure-level': string;}}
> {{ 'end-timestamp': number;}}
> {{ subtasks: JobBackpressureSubtaskInterface[];}}
> {{}}}
> I would like to update all of these to use {{_}} instead so we can maintain
> the type information we have in the web-runtime.
> My suggestion to do this with out a version bump to the API is to just make
> an addition to all the enpoints that include the _ versions as well. Then
> after the web-runtime has completely switched over to using the new keys, you
> can deprecate and remove the old hypenated keys at your own pace.
> [~chesnay] [~trohrmann]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)