Author: ramyav
Date: Tue May 28 07:31:58 2019
New Revision: 1860189
URL: http://svn.apache.org/viewvc?rev=1860189&view=rev
Log:
Bug fixes
Modified:
olingo/site/trunk/content/doc/odata4/tutorials/od4_basic_client_read.mdtext
Modified:
olingo/site/trunk/content/doc/odata4/tutorials/od4_basic_client_read.mdtext
URL:
http://svn.apache.org/viewvc/olingo/site/trunk/content/doc/odata4/tutorials/od4_basic_client_read.mdtext?rev=1860189&r1=1860188&r2=1860189&view=diff
==============================================================================
--- olingo/site/trunk/content/doc/odata4/tutorials/od4_basic_client_read.mdtext
(original)
+++ olingo/site/trunk/content/doc/odata4/tutorials/od4_basic_client_read.mdtext
Tue May 28 07:31:58 2019
@@ -46,7 +46,7 @@ With this Quickstart guide the runnable
odataClient.getConfiguration().setDefaultPubFormat(ContentType.APPLICATION_JSON);
###Read EDM
-For an OData Service the Entity Data Model (EDM) defines all metadata
information about the provided data of the service. This includes all entities
with their type, properties and relations, which entities are provided as
entity sets and additional functions and operations provided by the OData
Service. The EDM also have to be provided by the OData Service via a unique URI
(e.g. http://localhost:8080/DemoService/DemoService.svc/$metadata) in the EDMX
format.
+For an OData Service the Entity Data Model (EDM) defines all metadata
information about the provided data of the service. This includes all entities
with their type, properties and relations, which entities are provided as
entity sets and additional functions and operations provided by the OData
Service. The EDM also have to be provided by the OData Service via a unique URI
(e.g. http://localhost:8080/cars.svc/$metadata) in the EDMX format.
This fact is important because the Apache Olingo library requires the metadata
for serialization and de-serialization of the data of an entity (e.g. the
validation of the data is done against the EDM provided metadata). Hence the
first step in this sample is to read the whole EDM of an OData Service.
###Code sample: Read EDM ($metadata)
@@ -56,16 +56,23 @@ This fact is important because the Apach
If annotations defined in external vocabulary file has to be loaded then the
below code has to be used
List<InputStream> streams = new ArrayList<InputStream>();
+ //If file is locally available
streams.add(getClass().getResourceAsStream("annotations.xml"));
XMLMetadata xmlMetadata =
getClient().getRetrieveRequestFactory().getXMLMetadataRequest(serviceUrl).execute().getBody();
- final Edm edm = getClient().getReader().readMetadata(xmlMetadata, terms);
+ //If the reference uri's have to be loaded
+ String vocabUrl = metadata.getReferences().get(0).getUri().toString();
+ URI uri = new URI(vocabUrl);
+ ODataRawRequest request =
getClient().getRetrieveRequestFactory().getRawRequest(uri);
+ ODataRawResponse response = request.execute();
+ streams.add(response.getRawResponse());
+ final Edm edm = getClient().getReader().readMetadata(xmlMetadata, streams);
return edm;
Here the serviceUrl is the root Url of the odata service.
For read and de-serialize of the EDM this is all what have to be done and the
resulting EDM instance than can be used for necessary serialization and
de-serialization in combination of CRUD operations supported by Apache Olingo
library.
###Read Entity
-For reading entities this sample provides two methods. First is read of a
complete OData Feed / Entity Set and second is read os a single Entity. In
general, for both first create the request and execute the request.
+For reading entities this sample provides two methods. First is read of a
complete collection / Entity Set and second is read of a single Entity. In
general, for both first create the request and execute the request.
###Read entityCollection
@@ -95,17 +102,14 @@ For read of a single ODataEntry the requ
.appendPropertySegment(âNameâ).build());
final ODataRetrieveResponse<ClientProperty> response = request.execute();
final ClientProperty property = response.getBody();
-
-If the property is a Complex Type and if value has to be fetched
+ //If property is a primitive type and if value has to be fetched
+ final ClientProperty property = property.get("Name");
+ final ClientPrimitiveValue clientValue = property.getPrimitiveValue();
+ //If the property is a Complex Type and if value has to be fetched
// Here Address is a complex property
final ClientComplexValue complexValue = prop.getComplexValue();
final ClientValue propertyComp = complexValue.get("Street").getValue();
-If property is a primitive type and if value has to be fetched
-
- final ClientProperty property = property.get("Name");
- final ClientPrimitiveValue clientValue = property.getPrimitiveValue();
-
###Create Entity
To create an entity a HTTP POST on the corresponding entity set URI with the
whole entity data as POST Body in a supported format (e.g. atom-xml, json) has
to be done. With Apache Olingo the required POST Body can be created
(serialized) with the methods available on ClientObjectFactory. This method
creates a ClientEntity which contains the content (i.e. the required POST Body)
which then can be send to the server. If the entry was created successfully an
HTTP Status: 201 created will be returned as well as the complete entry.
@@ -117,7 +121,7 @@ For simplicity in the code sample below
newEntity.getProperties().add(getClient().getObjectFactory().newPrimitiveProperty(âNameâ,
getFactory().newPrimitiveValueBuilder().buildString(âMyCarManufacturerâ)));
newEntity.addLink(getClient().getObjectFactory().newEntityNavigationLink(âCarsâ,
- client.newURIBuilder(SERVICE_URI)
+ client.newURIBuilder(serviceUrl)
.appendEntitySetSegment(âCarsâ)
.appendKeySegment(1)
.build()));