2015-09-02 48 views
0

我的AngularJS應用程序需要來自第三方REST API的數據。在Java中封裝第三方REST API的良好實踐?

由於API密鑰在JavaScript中並不安全,因此我認爲將第三方API包裝在服務器上是個好主意。因此,我的JavaScript應用程序將訪問我的服務器,而不是直接訪問第三方API,這將訪問第三方API。
服務器將存儲第三方API密鑰,並且它們不會被客戶端應用程序訪問。

所有的第三方API都會返回JSON,我想要使用JAX-RS Client API來包裝它們。

但我擔心如何做到這一點:

  • 我應該簡單地返回在我的服務器REST enpoint第三方API的迴應?
  • 我應該考慮在POJO中映射第三方API響應(例如使用Jackson),然後將數據返回給我的客戶端應用程序?
+0

爲什麼您使用API​​密鑰訪問第三方API? API密鑰/祕密僅用於來自第三方服務平臺的身份驗證目的。我建議請求訪問令牌並使用您的AngularJS應用程序訪問第三方資源,並將訪問令牌附加到資源URL。 –

+0

對於某些API,例如[Forecast.io API](https://developer.forecast.io/docs/v2),API密鑰必須在URL上發送。我認爲在客戶端上存儲第三方API密鑰並不是一個好主意。所以,我的服務器將包裝這個API,並將API密鑰發送給它。 –

+0

我明白了!我認爲這個API是糟糕的設計。 –

回答

1

你說得對,在客戶端存儲第三方API密鑰不是一個好的做法。

你可以做的是從你的服務器調用第三方REST服務,使用你最喜歡的框架來解析響應,也許對它做一些處理(比如緩存它或者把它包含到你需要的其他數據),並最終在您的REST服務響應中將其發送回您的客戶端應用程序。