Samza REST服務(wù)資源

2018-08-22 18:30 更新

Samza REST可以暴露任何 JAX-RS 資源。默認(rèn)情況下,它附帶了一個 JobsResource,這將在下面討論。您可以實現(xiàn)自己的資源并在配置中指定它們。

實施新資源

Samza REST使用 Jersey 實現(xiàn)的 JAX-RS規(guī)范。Jersey 文檔和示例有助于創(chuàng)建新的資源。

此外,Samza REST強(qiáng)加了以下約定,所有資源都應(yīng)遵循這些約定。

版本路徑

按照慣例,所有資源都使用版本號在其路徑前面,以便將來支持舊版API。例如,JobsResource 的基本URL是:

/v1/jobs

如果將來版本的 JobsResource 實現(xiàn)了不同的 API,那么它將在基本路徑中使用不同的版本號:

/v2/jobs

所有資源都應(yīng)該在最新版本上公開,以便客戶端可以為所有請求使用通用版本庫。

錯誤消息

每個錯誤響應(yīng)將包含一個 JSON 消息正文,其中包含描述問題的單個消息字段。例如:

{
    "message": "Unrecognized status: null"
}

組態(tài)

對于需要配置值的資源,還有一些額外的步驟。

  1. 實現(xiàn)一個配置類,它將 MapConfig 擴(kuò)展為 Resource 的配置的所有常量和訪問器。該 SamzaRestConfig 不應(yīng)與資源 CONFIGS 弄得一團(tuán)糟。請參閱 JobsResourceConfig 作為示例。
  2. 實現(xiàn)或擴(kuò)展 ResourceFactory,它將使用全局 Samza REST 配置文件從第1步中實例化 MapConfig 實現(xiàn),并使用它來構(gòu)建需要配置的資源。有關(guān)示例,請參閱 DefaultResourceFactory
  3. 將所有必需的資源屬性添加到 Samza REST配置文件。該 SamzaRestApplication 通過全局配置到配置 ResourceFactories 的資源與 CONFIGS 實例。

向 Samza REST服務(wù)添加新資源

資源通過配置添加到 Samza REST服務(wù)。根據(jù)資源是否需要配置文件的屬性,有兩種添加新資源的方法。在前一種情況下,資源使用 config 實例化一次,并且實例已注冊到SamzaRestApplication;在后一種情況下,Resource 類被注冊,并且可以在應(yīng)用程序的生命周期內(nèi)實例化多次。

  • 要添加配置的資源,請將 ResourceFactory 實現(xiàn)的完全限定類名稱實例化為 rest.resource.factory.classes 服務(wù)配置中的屬性。
  • 要添加無配置資源,請將資源實現(xiàn)的完全限定類名添加到 rest.resource.classes 服務(wù)配置中的屬性中。

有關(guān)這些配置屬性的更多信息,請參閱概述頁面中的配置表。

REST服務(wù)監(jiān)視器    ?

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號