Java Code Examples for org.apache.olingo.server.api.ODataRequest#getBody()
The following examples show how to use
org.apache.olingo.server.api.ODataRequest#getBody() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 6 votes |
public void updateEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity set which belongs to the requested entity List<UriResource> resourcePaths = uriInfo.getUriResourceParts(); // Note: only in our example we can assume that the first segment is the EntitySet UriResourceEntitySet uriResourceEntitySet = (UriResourceEntitySet) resourcePaths.get(0); EdmEntitySet edmEntitySet = uriResourceEntitySet.getEntitySet(); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. update the data in backend // 2.1. retrieve the payload from the PUT request for the entity to be updated InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = this.odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the modification in backend List<UriParameter> keyPredicates = uriResourceEntitySet.getKeyPredicates(); // Note that this updateEntity()-method is invoked for both PUT or PATCH operations HttpMethod httpMethod = request.getMethod(); storage.updateEntityData(edmEntitySet, keyPredicates, requestEntity, httpMethod); //3. configure the response object response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode()); }
Example 2
Source File: AsyncProcessor.java From olingo-odata4 with Apache License 2.0 | 6 votes |
static InputStream copyRequestBody(ODataRequest request) { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); InputStream input = request.getBody(); if (input != null) { try { ByteBuffer inBuffer = ByteBuffer.allocate(8192); ReadableByteChannel ic = Channels.newChannel(input); WritableByteChannel oc = Channels.newChannel(buffer); while (ic.read(inBuffer) > 0) { inBuffer.flip(); oc.write(inBuffer); inBuffer.rewind(); } return new ByteArrayInputStream(buffer.toByteArray()); } catch (IOException e) { throw new ODataRuntimeException("Error on reading request content"); } } return null; }
Example 3
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 6 votes |
public void updateEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity set which belongs to the requested entity List<UriResource> resourcePaths = uriInfo.getUriResourceParts(); // Note: only in our example we can assume that the first segment is the EntitySet UriResourceEntitySet uriResourceEntitySet = (UriResourceEntitySet) resourcePaths.get(0); EdmEntitySet edmEntitySet = uriResourceEntitySet.getEntitySet(); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. update the data in backend // 2.1. retrieve the payload from the PUT request for the entity to be updated InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the modification in backend List<UriParameter> keyPredicates = uriResourceEntitySet.getKeyPredicates(); // Note that this updateEntity()-method is invoked for both PUT or PATCH operations HttpMethod httpMethod = request.getMethod(); storage.updateEntityData(edmEntitySet, keyPredicates, requestEntity, httpMethod); //3. configure the response object response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode()); }
Example 4
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 6 votes |
public void updateEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity set which belongs to the requested entity List<UriResource> resourcePaths = uriInfo.getUriResourceParts(); // Note: only in our example we can assume that the first segment is the EntitySet UriResourceEntitySet uriResourceEntitySet = (UriResourceEntitySet) resourcePaths.get(0); EdmEntitySet edmEntitySet = uriResourceEntitySet.getEntitySet(); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. update the data in backend // 2.1. retrieve the payload from the PUT request for the entity to be updated InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the modification in backend List<UriParameter> keyPredicates = uriResourceEntitySet.getKeyPredicates(); // Note that this updateEntity()-method is invoked for both PUT or PATCH operations HttpMethod httpMethod = request.getMethod(); storage.updateEntityData(edmEntitySet, keyPredicates, requestEntity, httpMethod); //3. configure the response object response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode()); }
Example 5
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 6 votes |
public void updateEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity set which belongs to the requested entity List<UriResource> resourcePaths = uriInfo.getUriResourceParts(); // Note: only in our example we can assume that the first segment is the EntitySet UriResourceEntitySet uriResourceEntitySet = (UriResourceEntitySet) resourcePaths.get(0); EdmEntitySet edmEntitySet = uriResourceEntitySet.getEntitySet(); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. update the data in backend // 2.1. retrieve the payload from the PUT request for the entity to be updated InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the modification in backend List<UriParameter> keyPredicates = uriResourceEntitySet.getKeyPredicates(); // Note that this updateEntity()-method is invoked for both PUT or PATCH operations HttpMethod httpMethod = request.getMethod(); storage.updateEntityData(edmEntitySet, keyPredicates, requestEntity, httpMethod); //3. configure the response object response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode()); }
Example 6
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 6 votes |
public void updateEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity set which belongs to the requested entity List<UriResource> resourcePaths = uriInfo.getUriResourceParts(); // Note: only in our example we can assume that the first segment is the EntitySet UriResourceEntitySet uriResourceEntitySet = (UriResourceEntitySet) resourcePaths.get(0); EdmEntitySet edmEntitySet = uriResourceEntitySet.getEntitySet(); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. update the data in backend // 2.1. retrieve the payload from the PUT request for the entity to be updated InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = this.odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the modification in backend List<UriParameter> keyPredicates = uriResourceEntitySet.getKeyPredicates(); // Note that this updateEntity()-method is invoked for both PUT or PATCH operations HttpMethod httpMethod = request.getMethod(); storage.updateEntityData(edmEntitySet, keyPredicates, requestEntity, httpMethod); // 3. configure the response object response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode()); }
Example 7
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 6 votes |
public void updateEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity set which belongs to the requested entity List<UriResource> resourcePaths = uriInfo.getUriResourceParts(); // Note: only in our example we can assume that the first segment is the EntitySet UriResourceEntitySet uriResourceEntitySet = (UriResourceEntitySet) resourcePaths.get(0); EdmEntitySet edmEntitySet = uriResourceEntitySet.getEntitySet(); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. update the data in backend // 2.1. retrieve the payload from the PUT request for the entity to be updated InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = this.odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the modification in backend List<UriParameter> keyPredicates = uriResourceEntitySet.getKeyPredicates(); // Note that this updateEntity()-method is invoked for both PUT or PATCH operations HttpMethod httpMethod = request.getMethod(); storage.updateEntityData(edmEntitySet, keyPredicates, requestEntity, httpMethod); //3. configure the response object response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode()); }
Example 8
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 6 votes |
public void updateEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity set which belongs to the requested entity List<UriResource> resourcePaths = uriInfo.getUriResourceParts(); // Note: only in our example we can assume that the first segment is the EntitySet UriResourceEntitySet uriResourceEntitySet = (UriResourceEntitySet) resourcePaths.get(0); EdmEntitySet edmEntitySet = uriResourceEntitySet.getEntitySet(); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. update the data in backend // 2.1. retrieve the payload from the PUT request for the entity to be updated InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the modification in backend List<UriParameter> keyPredicates = uriResourceEntitySet.getKeyPredicates(); // Note that this updateEntity()-method is invoked for both PUT or PATCH operations HttpMethod httpMethod = request.getMethod(); storage.updateEntityData(edmEntitySet, keyPredicates, requestEntity, httpMethod); //3. configure the response object response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode()); }
Example 9
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 6 votes |
public void updateEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity set which belongs to the requested entity List<UriResource> resourcePaths = uriInfo.getUriResourceParts(); // Note: only in our example we can assume that the first segment is the EntitySet UriResourceEntitySet uriResourceEntitySet = (UriResourceEntitySet) resourcePaths.get(0); EdmEntitySet edmEntitySet = uriResourceEntitySet.getEntitySet(); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. update the data in backend // 2.1. retrieve the payload from the PUT request for the entity to be updated InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the modification in backend List<UriParameter> keyPredicates = uriResourceEntitySet.getKeyPredicates(); // Note that this updateEntity()-method is invoked for both PUT or PATCH operations HttpMethod httpMethod = request.getMethod(); storage.updateEntityData(edmEntitySet, keyPredicates, requestEntity, httpMethod); //3. configure the response object response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode()); }
Example 10
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 5 votes |
public void createEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity type from the URI EdmEntitySet edmEntitySet = Util.getEdmEntitySet(uriInfo); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. create the data in backend // 2.1. retrieve the payload from the POST request for the entity to create and deserialize it InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the creation in backend, which returns the newly created entity Entity createdEntity = storage.createEntityData(edmEntitySet, requestEntity); // 3. serialize the response (we have to return the created entity) ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).build(); EntitySerializerOptions options = EntitySerializerOptions.with().contextURL(contextUrl).build(); // expand and select currently not supported ODataSerializer serializer = odata.createSerializer(responseFormat); SerializerResult serializedResponse = serializer.entity(serviceMetadata, edmEntityType, createdEntity, options); //4. configure the response object response.setContent(serializedResponse.getContent()); response.setStatusCode(HttpStatusCode.CREATED.getStatusCode()); response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString()); }
Example 11
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 5 votes |
public void createEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity type from the URI EdmEntitySet edmEntitySet = Util.getEdmEntitySet(uriInfo); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. create the data in backend // 2.1. retrieve the payload from the POST request for the entity to create and deserialize it InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = this.odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the creation in backend, which returns the newly created entity Entity createdEntity = storage.createEntityData(edmEntitySet, requestEntity); // 3. serialize the response (we have to return the created entity) ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).build(); EntitySerializerOptions options = EntitySerializerOptions.with().contextURL(contextUrl).build(); // expand and select currently not supported ODataSerializer serializer = this.odata.createSerializer(responseFormat); SerializerResult serializedResponse = serializer.entity(serviceMetadata, edmEntityType, createdEntity, options); //4. configure the response object response.setContent(serializedResponse.getContent()); response.setStatusCode(HttpStatusCode.CREATED.getStatusCode()); response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString()); }
Example 12
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 5 votes |
public void createEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity type from the URI EdmEntitySet edmEntitySet = Util.getEdmEntitySet(uriInfo); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. create the data in backend // 2.1. retrieve the payload from the POST request for the entity to create and deserialize it InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the creation in backend, which returns the newly created entity Entity createdEntity = null; try { storage.beginTransaction(); createdEntity = storage.createEntityData(edmEntitySet, requestEntity, request.getRawBaseUri()); storage.commitTransaction(); } catch( ODataApplicationException e ) { storage.rollbackTransaction(); throw e; } // 3. serialize the response (we have to return the created entity) ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).build(); EntitySerializerOptions options = EntitySerializerOptions.with().contextURL(contextUrl).build(); // expand and select currently not supported ODataSerializer serializer = odata.createSerializer(responseFormat); SerializerResult serializedResponse = serializer.entity(serviceMetadata, edmEntityType, createdEntity, options); //4. configure the response object response.setContent(serializedResponse.getContent()); response.setStatusCode(HttpStatusCode.CREATED.getStatusCode()); response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString()); }
Example 13
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 5 votes |
public void createEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity type from the URI EdmEntitySet edmEntitySet = Util.getEdmEntitySet(uriInfo); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. create the data in backend // 2.1. retrieve the payload from the POST request for the entity to create and deserialize it InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = this.odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the creation in backend, which returns the newly created entity Entity createdEntity = storage.createEntityData(edmEntitySet, requestEntity); // 3. serialize the response (we have to return the created entity) ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).build(); EntitySerializerOptions options = EntitySerializerOptions.with().contextURL(contextUrl).build(); // expand and select currently not supported ODataSerializer serializer = this.odata.createSerializer(responseFormat); SerializerResult serializedResponse = serializer.entity(serviceMetadata, edmEntityType, createdEntity, options); //4. configure the response object final String location = request.getRawBaseUri() + '/' + odata.createUriHelper().buildCanonicalURL(edmEntitySet, createdEntity); response.setHeader(HttpHeader.LOCATION, location); response.setContent(serializedResponse.getContent()); response.setStatusCode(HttpStatusCode.CREATED.getStatusCode()); response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString()); }
Example 14
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 5 votes |
public void createEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity type from the URI EdmEntitySet edmEntitySet = Util.getEdmEntitySet(uriInfo); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. create the data in backend // 2.1. retrieve the payload from the POST request for the entity to create and deserialize it InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the creation in backend, which returns the newly created entity Entity createdEntity = storage.createEntityData(edmEntitySet, requestEntity); // 3. serialize the response (we have to return the created entity) ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).build(); EntitySerializerOptions options = EntitySerializerOptions.with().contextURL(contextUrl).build(); // expand and select currently not supported ODataSerializer serializer = odata.createSerializer(responseFormat); SerializerResult serializedResponse = serializer.entity(serviceMetadata, edmEntityType, createdEntity, options); //4. configure the response object response.setContent(serializedResponse.getContent()); response.setStatusCode(HttpStatusCode.CREATED.getStatusCode()); response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString()); }
Example 15
Source File: ProductEntityProcessor.java From syndesis with Apache License 2.0 | 5 votes |
@Override public void createEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity type from the URI EdmEntitySet edmEntitySet = Util.getEdmEntitySet(uriInfo); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. create the data in backend // 2.1. retrieve the payload from the POST request for the entity to // create and deserialize it InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = this.odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); LOG.info("Creating new entity {}", requestEntity); // 2.2 do the creation in backend, which returns the newly created // entity Entity createdEntity = storage.createEntityData(edmEntitySet, requestEntity); // 3. serialize the response (we have to return the created entity) ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).build(); // expand and select currently not supported EntitySerializerOptions options = EntitySerializerOptions.with().contextURL(contextUrl).build(); ODataSerializer serializer = this.odata.createSerializer(responseFormat); SerializerResult serializedResponse = serializer.entity(serviceMetadata, edmEntityType, createdEntity, options); // 4. configure the response object response.setContent(serializedResponse.getContent()); response.setStatusCode(HttpStatusCode.CREATED.getStatusCode()); response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString()); }
Example 16
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 5 votes |
public void createEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity type from the URI EdmEntitySet edmEntitySet = Util.getEdmEntitySet(uriInfo); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. create the data in backend // 2.1. retrieve the payload from the POST request for the entity to create and deserialize it InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the creation in backend, which returns the newly created entity Entity createdEntity = storage.createEntityData(edmEntitySet, requestEntity); // 3. serialize the response (we have to return the created entity) ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).build(); EntitySerializerOptions options = EntitySerializerOptions.with().contextURL(contextUrl).build(); // expand and select currently not supported ODataSerializer serializer = odata.createSerializer(responseFormat); SerializerResult serializedResponse = serializer.entity(serviceMetadata, edmEntityType, createdEntity, options); //4. configure the response object response.setContent(serializedResponse.getContent()); response.setStatusCode(HttpStatusCode.CREATED.getStatusCode()); response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString()); }
Example 17
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 5 votes |
public void createEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity type from the URI EdmEntitySet edmEntitySet = Util.getEdmEntitySet(uriInfo); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. create the data in backend // 2.1. retrieve the payload from the POST request for the entity to create and deserialize it InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the creation in backend, which returns the newly created entity Entity createdEntity = null; try { storage.beginTransaction(); createdEntity = storage.createEntityData(edmEntitySet, requestEntity, request.getRawBaseUri()); storage.commitTransaction(); } catch( ODataApplicationException e ) { storage.rollbackTransaction(); throw e; } // 3. serialize the response (we have to return the created entity) ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).build(); EntitySerializerOptions options = EntitySerializerOptions.with().contextURL(contextUrl).build(); // expand and select currently not supported ODataSerializer serializer = odata.createSerializer(responseFormat); SerializerResult serializedResponse = serializer.entity(serviceMetadata, edmEntityType, createdEntity, options); //4. configure the response object response.setContent(serializedResponse.getContent()); response.setStatusCode(HttpStatusCode.CREATED.getStatusCode()); response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString()); }
Example 18
Source File: ProductEntityProcessor.java From syndesis with Apache License 2.0 | 5 votes |
@Override public void updateEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity set which belongs to the requested entity List<UriResource> resourcePaths = uriInfo.getUriResourceParts(); // Note: only in our example we can assume that the first segment is the // EntitySet UriResourceEntitySet uriResourceEntitySet = (UriResourceEntitySet) resourcePaths.get(0); EdmEntitySet edmEntitySet = uriResourceEntitySet.getEntitySet(); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. update the data in backend // 2.1. retrieve the payload from the PUT request for the entity to be // updated InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = this.odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); LOG.info("Updating entity {}", requestEntity.getSelfLink()); // 2.2 do the modification in backend List<UriParameter> keyPredicates = uriResourceEntitySet.getKeyPredicates(); // Note that this updateEntity()-method is invoked for both PUT or PATCH // operations HttpMethod httpMethod = request.getMethod(); storage.updateEntityData(edmEntitySet, keyPredicates, requestEntity, httpMethod); // 3. configure the response object response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode()); }
Example 19
Source File: DemoEntityProcessor.java From olingo-odata4 with Apache License 2.0 | 4 votes |
public void createEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity type from the URI EdmEntitySet edmEntitySet = Util.getEdmEntitySet(uriInfo); EdmEntityType edmEntityType = edmEntitySet.getEntityType(); // 2. create the data in backend // 2.1. retrieve the payload from the POST request for the entity to create and deserialize it InputStream requestInputStream = request.getBody(); ODataDeserializer deserializer = this.odata.createDeserializer(requestFormat); DeserializerResult result = deserializer.entity(requestInputStream, edmEntityType); Entity requestEntity = result.getEntity(); // 2.2 do the creation in backend, which returns the newly created entity Entity createdEntity = null; try { storage.beginTransaction(); createdEntity = storage.createEntityData(edmEntitySet, requestEntity, request.getRawBaseUri()); storage.commitTransaction(); } catch(ODataApplicationException e) { storage.rollbackTranscation(); throw e; } // 3. serialize the response (we have to return the created entity) ContextURL contextUrl = ContextURL.with().entitySet(edmEntitySet).build(); EntitySerializerOptions options = EntitySerializerOptions.with().contextURL(contextUrl).build(); // expand and // select currently // not supported ODataSerializer serializer = this.odata.createSerializer(responseFormat); SerializerResult serializedResponse = serializer.entity(serviceMetadata, edmEntityType, createdEntity, options); // 4. configure the response object final String location = request.getRawBaseUri() + '/' + odata.createUriHelper().buildCanonicalURL(edmEntitySet, createdEntity); response.setHeader(HttpHeader.LOCATION, location); response.setContent(serializedResponse.getContent()); response.setStatusCode(HttpStatusCode.CREATED.getStatusCode()); response.setHeader(HttpHeader.CONTENT_TYPE, responseFormat.toContentTypeString()); }