[
https://issues.jboss.org/browse/TEIID-5803?page=com.atlassian.jira.plugin...
]
Christoph John edited comment on TEIID-5803 at 8/23/19 6:29 PM:
----------------------------------------------------------------
Hello Steven,
when using the $ref I still get the following error:
HTTP/1.1 405 Method Not Allowed
Expires: 0
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Date: Fri, 23 Aug 2019 20:55:24 GMT
Allow: GET,POST,PUT,PATCH,DELETE
Connection: keep-alive
Access-Control-Allow-Origin: *
Content-Type: application/json;odata.metadata=minimal
Content-Length: 85
OData-Version: 4.0
{"error":{"code":null,"message":"HTTP method
'POST' not allowed for this resource."}}
Is there possibly something I need to specify in the vdb in order to get the navigation
property updatable?
As mentioned, in the direct case (call to collection) a direct insert into the collection
calls the INSTEAD OF INSERT trigger on the view and the insert works.
The view has the following options set OPTIONS(UPDATABLE 'TRUE')
Here you can download an example compose file. First curl scripts shows running insert on
collection second one failing script on navigation property
https://c.gmx.net/@328076122686231878/-lgX5GIgRum5frT7m1oIoA
was (Author: cjohn001):
Hello Steven,
when using the $ref I still get the following error:
HTTP/1.1 405 Method Not Allowed
Expires: 0
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Date: Fri, 23 Aug 2019 20:55:24 GMT
Allow: GET,POST,PUT,PATCH,DELETE
Connection: keep-alive
Access-Control-Allow-Origin: *
Content-Type: application/json;odata.metadata=minimal
Content-Length: 85
OData-Version: 4.0
{"error":{"code":null,"message":"HTTP method
'POST' not allowed for this resource."}}
Is there possibly something I need to specify in the vdb in order to get the navigation
property updatable?
As mentioned, in the direct case (call to collection) a direct insert into the collection
calls the INSTEAD OF INSERT trigger on the view and the insert works.
The view has the following options set OPTIONS(UPDATABLE 'TRUE')
Seems to be not possible to POST a new entity via a navigation
property to a collection
---------------------------------------------------------------------------------------
Key: TEIID-5803
URL:
https://issues.jboss.org/browse/TEIID-5803
Project: Teiid
Issue Type: Bug
Reporter: Christoph John
Assignee: Steven Hawkins
Priority: Major
Hello Steven,
I am currently trying to post/create an entity in a collection via a relative binding
path. Unfortunately, I always get an error saying
{"error":{"code":null,"message":"HTTP method
'POST' not allowed for this resource."}}
I have bound the root view to .../Account(1) from which I have a navigation property to
the relevant collection. Currently I have trouble to post to collections via a navigation
path.
As far as I understood from
http://docs.oasis-open.org/odata/odata/v4.01/csprd04/part1-protocol/odata...
chapter 11.4.2 this should work according to my tries below.
Might you tell me if my path via the navigation property should work for post requests or
what I am doing wrong?
Directly writing to the collection is fine, i.e. something like the following:
curl --user sap:sap -i -X POST -H 'Content-Type:
application/json;charset=UTF-8;IEEE754Compatible=true' -d
'{"fkProfile":"1","idCode":null,"lc":"de","product_name":"A
Product","brands":"A
brand","energy_100g":2259,"carbohydrates_100g":60.08,"sugars_100g":10.1,"proteins_100g":24.03,"fat_100g":15.89,"saturated_fat_100g":10.0,"salt_100g":1.0}'
http://localhost:18080/odata4/svc/my_nutri_diary/UserDefinedProducts
and a GET request via a navigation property path (given below) also works, but a path via
a navigation property does not work when using the path in a POST request. I.e. when
going via the navigation property. Example:
curl --user sap:sap -i -X POST -H 'Content-Type:
application/json;charset=UTF-8;IEEE754Compatible=true' -d
'{"fkProfile":"1","idCode":null,"lc":"de","product_name":"A
Product","brands":"A
brand","energy_100g":2259,"carbohydrates_100g":60.08,"sugars_100g":10.1,"proteins_100g":24.03,"fat_100g":15.89,"saturated_fat_100g":10.0,"salt_100g":1.0}'
http://localhost:18080/odata4/svc/my_nutri_diary/Account\(1\)/UserDefined...
Here you find the backend metadata. They show that
UserDefinedProducts_fKUserDefinedProductToAccount is simply a navigaton path from
Account(xxx) to the UserDefinedProducts collection.
https://ecubed-solutions.ddnss.de/odata4/svc/my_nutri_diary/$metadata
user: sap
password: sap
Thanks a lot for your help!
Note: I am currently trying to add data via a navigation property path because my
frontend library sapui5 only caches and syncs data queried via a single context binding.
Hence, to be consistent via all views in my app which bind to the odata model, I need to
use only one absolute binding and have to query/update other contexts via relative binding
paths from this single absolute path, to allow for all frontend views to maintain data
consistency
--
This message was sent by Atlassian Jira
(v7.12.1#712002)