在两个 REST API 之间映射查询参数

Mapping query parameters between two 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);


}