簡體   English   中英

使用Jersey REST Client的Yelp API調用

[英]Yelp API calls using Jersey REST Client

我試圖對Yelp API進行REST調用,以從Java Spring MVC Web Application獲取業務數據。 我可以使用Postman App進行API調用。 現在,我正在嘗試使用Jersey REST客戶端。 我的REST調用將如下所示:

ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource webResource = client.resource("https://api.yelp.com/v3/businesses/{id}");
Object responseMsg = webResource
.header("Authorization", "Bearer My_Key")
.getClass();

根據Yelp文檔Yelp文檔 ,如果我進行API調用,將返回一個對象。 是否不可能將返回的數據存儲到Java Oject並從該Object獲取所需的數據。

您甚至都沒有發出請求。 您需要使用WebResource.Builder上的方法之一。 WebResource上調用header() ,您將獲得一個WebResource.Builder 要進行API調用,您需要使用get()post()put()等方法。將ClientResponse.class傳遞為參數,以便返回ClientResponse 您可以在ClientResponse上檢查狀態。 如果狀態正常,則調用response.getEntity(POJO.class) ,其中POJO.class是您自己的Yelp JSON數據的模型類表示形式。 就像是

ClientResponse response = webResource
        .header("Authorization", "Bearer My_Key")
        .get(ClientResponse.class);
if (response.getStatus() == 200) {
    YelpModel model = response.getEntity(YelpModel.class);
}

您需要確保具有jersey-json依賴項,並使用客戶端配置JSON POJO功能

ClientConfig clientConfig = new DefaultClientConfig();              
clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE); 
Client client = Client.create(clientConfig);

YelpModel是用於對Yelp JSON建模的自定義POJO類。 如果您不知道如何制作此類,那么您可能需要閱讀一些有關如何將JSON映射到Java對象的Jackson教程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM