客戶端API的文檔似乎有點被Olingo忽視。 但是樣本/客戶端的GIT repository中有一個示例。
基本上是一個讓你做到以下幾點:
String serviceUrl = "http://localhost:9080/odata-server-sample/cars.svc"
String entitySetName = "Manufacturers";
ODataClient client = ODataClientFactory.getClient();
URI absoluteUri = client.newURIBuilder(serviceUri).appendEntitySetSegment(entitySetName).build();
ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> request =
client.getRetrieveRequestFactory().getEntitySetIteratorRequest(absoluteUri);
// odata4 sample/server limitation not handling metadata=full
request.setAccept("application/json;odata.metadata=minimal");
ODataRetrieveResponse<ClientEntitySetIterator<ClientEntitySet, ClientEntity>> response = request.execute();
ClientEntitySetIterator<ClientEntitySet, ClientEntity> iterator = response.getBody();
while (iterator.hasNext()) {
ClientEntity ce = iterator.next();
System.out.println("Manufacturer name: " + ce.getProperty("Name").getPrimitiveValue());
}
看一看在Olingo代碼庫樣品得到進一步的細節如何 檢索元數據,過程中的所有特性等
要執行POST,您可以執行以下操作。 (注意,這不是測試代碼,並且示例汽車服務是隻讀的。) 首先,您將數據構建爲ClientEntity。你可以做與
ClientComplexValue manufacturer = of.newComplexValue("Manufacturer");
manufacturer.add(of.newPrimitiveProperty("Name", of.newPrimitiveValueBuilder().buildString("Ford")));
然後發送POST請求
ODataEntityCreateRequest<ClientEntity> request = client.getCUDRequestFactory().getEntityCreateRequest(absoluteUri, manufacturer);
ODataEntityCreateResponse<ClientEntity> response = request.execute();
因此,這不是與POJO類 - 結果類型爲ClientEntity,其中介紹了數據的名稱/值映射。 關於該特定主題已有另一個未解答的問題,在 Olingo - Create strongly typed POJOs for client library of OData service 我建議我們轉到那裏跟進。
用的OData客戶端的核心版本4.0.0-β-01: ODataClient客戶端= ODataClientFactory.getV4(); (或xxx.getV3()) –