我有以下对象,它的值是通过REST调用设置的,如下所示。
@Getter
@Setter
public class Benefit {
@JsonProperty("text")
private String headerText; // To note, I can't modify this headerText name
}
来自Rest呼叫的数据集。
ResponseEntity<Benefit> response =
template.exchange(url, HttpMethod.POST, request, Benefit.class);
Benefit benefit = response.getBody();
rest调用的返回值采用以下格式,这就是我将其注释为文本的原因。
{
"text" : "some text"
}
之后,使用这个响应,我将它作为一个值传递给调用我的客户端。
但是当我发送信息时,我不想将其命名为文本。我想将其称为描述。因此,我的响应如下:
{
"description" : "some text"
}
查询/指针
1。有没有一种方法可以做到这一点,而不必手动设置它?
2。这个头文本用于不同的REST调用。在这种情况下,我需要以文本的形式接收值,并以文本的形式返回。(因此没有问题)。
3。最好是任何可能的解决方案,都不应该影响上面的第2点。
4。但是如果它会影响,也没关系。如果有一个解决方案影响第2点,我将使用一个全新的福利2对象来解决这个问题。
一种可能的方法是将值设置为另一个变量,并按如下方式传递给特定的rest调用。
但是如下所示发现它非常麻烦。
添加一个名为描述的新字段
@Getter
@Setter
public class Benefit {
@JsonProperty("text")
private String headerText;
// add a new field
private String description;
}
在rest通话后,请执行以下操作:
Benefit benefit = response.getBody();
benefit.setDescription(benefit.getHeadlineText);
benefit.setHeaderText(null);
有更好的方法吗?
要澄清流程:
>
客户端调用我的服务
我的服务调用另一个服务并返回:
{"text":"一些文本"}
然后我将以下内容返回给客户。
{“描述”:“一些文本”}
讨论后的想法。
打算在这两个地方使用此对象,当调用rest和返回响应到客户端时。
@Getter
@Setter
public class TestBenefit extends Benefit {
@Getter(AccessLevel.NONE)
@JsonProperty("text")
private String text;
private String description;
public void setText(String text) {
this.description = text;
}
}
随着时间的推移,我了解到在这些场景中试图将一个对象用于多种目的是麻烦大于价值的。您应该创建适合您的请求和响应的对象。必要时使用基类。此外,我不会称之为福利2
。: o)在某种程度上,根据它们的用途命名您的类。你可以做这样的事情...
class BenefitForOtherPurpose extends Benefit {
@JsonProperty('description')
public String getHeaderText() {
return this.headerText;
}
}
为此,我不认为有任何方法可以使用Jackson API动态调整@JsonProperty
值,使其缺少一些反射技巧,这可能会带来更多麻烦。据我所知,在Jackson API中没有任何东西可以在这个复杂的解决方案之外有条件地设置:
使用Jackson和Spring Boot的条件JsonProperty
我在实现UDP连接时遇到了麻烦,因为当我在局域网内尝试它时,它是有效的,但是当NAT内部的人试图连接到公共服务器地址时,它会失败,因为从服务器作为响应发送的数据包永远不会到达客户端。 我的协议如下: 客户端A向服务器发送一个字节作为连接请求 服务器B为客户端创建一个新的套接字,并从那里向recvfrom()调用中报告的客户端端口响应一个字节。永远不会联系到客户 我也试过: 执行许多调用,每个调用在
不确定发生了什么,但我不知道我的反应在哪里被劫持了。
我试图在数据库中创建一个新记录,但是在我需要获取另一个记录并从中获取一些数据并将其设置为新记录之前 我的错误是什么?如何纠正?
我正在尝试编写同时使用gRPC和REST的服务。实现技术有Java、Spring-Boot和gRPC。使用场景示例如下: 目的是有外部客户端可以通过RESTendpoint和/或通过进行gRPC调用与应用程序交互。在内部,有“网关”服务提供外部接口,并负责在外部客户端和执行实际工作的“域”服务之间传输/路由请求和响应。内部服务将通过gRPC进行通信。 外部客户端不知道如何在内部处理事情,域服务没有
问题内容: 我有一个Java控制器,必须向我发送一些文本数据和不同的字节数组。因此,我正在构建n多部分请求,并将其写入到HttpServletResponse的流中。 现在我的问题是如何在客户端解析响应并提取多个部分。 服务器代码片段:- 客户代码片段:- 我检查了CloseableHttpResponse和HttpEntity,但是它们都不提供解析多部分请求的方法。 编辑1:这是我在客户端流中收
我有一个java控制器,它必须向我发送一些文本数据和不同的字节数组。因此,我正在构建一个多部分请求,并将其从HttpServletResponse写入流。 现在我的问题是如何在客户端解析响应并提取多个部分。 服务器代码片段:- 客户端代码段:- 我检查了CloseableHttpResponse和HttpEntity,但它们都没有提供解析多部分请求的方法。 编辑1:这是我在客户端流中收到的示例响应