java - 在两个 REST API 之间映射查询参数
问题描述
我想使用 Rest Client 来查询这个端点:https://landregistry.data.gov.uk/data/ppi/transaction-record.json。如果您访问基本 URI https://landregistry.data.gov.uk/data/ppi/transaction-record,您可以看到端点可以接受多个查询参数。例如,这是一个有效的 url:https://landregistry.data.gov.uk/data/ppi/transaction-record.json?propertyAddress.postcode=M40%200JE
由于我确定这不是一个新用例,因此我想知道在要公开的端点和可用于创建要调用的 URI 的查询参数之间创建“映射”的最佳方法是什么?
换句话说,以上面的示例为例,我的服务将公开如下内容:
localhost:8080/transactions?postcode=M400JE
这将调用:
https://landregistry.data.gov.uk/data/ppi/transaction-record.json?propertyAddress.postcode=M40%200JE
因此,邮政编码应翻译为 propertyAddress.postcode。另外 20 个潜在的查询参数也是如此。
解决方案
据我所知,您无法自动执行任何操作。
您的端点将是:
@Path("/transaction")
public class GreetingResource {
@Inject
LandRegistryClient client;
@GET
@Produces(MediaType.APPLICATION_JSON)
public SomeType transaction(@QueryParam("postcode") String postcode) {
return client.transactionRecord(postcode);
}
}
REST 客户端将是:
@Path("/data/ppi")
@RegisterRestClient
public interface CountriesService {
@GET
@Path("transaction-record.json")
@Produces(MediaType.APPLICATION_JSON)
SomeType transactionRecord(@QueryParam("propertyAddress.postcode") String postcode);
}
推荐阅读
- javascript - 如何在firebase功能上为flutter push Notification创建Firebase push Notification Payload?
- android - 更新后画质丢失
- c# - 使用 ReferenceOutputAssembly=false 添加对另一个可执行文件的引用不会复制依赖项
- python - 使用排列对随机数组进行排序
- c# - 如何在不使用太多 RAM 的情况下将屏幕截图分配给图片框
- node.js - 护照用户车把模板
- javascript - 使用时区将日期转换为 UTC
- python - Tensorflow:不支持的可调用
- python - 拆分数据集后的过采样 - 文本分类
- python - 客户端如何知道服务器数据库何时发生更改(表更新)?