Closed bertt closed 8 years ago
I interpreted the word "structural" in the sentence
Services that support PUT SHALL replace all values of structural properties with those specified in the request body.
to mean all non-navigation properties. Thing.ID, ObservedProperty.ID and Sensor.ID are navigation properties and thus not included in this restriction.
The wording is not very clear and the word "structural" is not used anywhere else in the document.
On the other hand, all navigation properties are missing from all puts in the test suite... The put for Observation is missing the Datastream.ID and FeatureOfInterest.ID and the put for HistoricalLocation is missing the Thing.ID.
yes true this issue applies also to other 'navigation' properties.
From a HTTP perspective: a PUT is just like a POST, difference the resource is not created but replaced completely. So all mandatory properties must be in the PUT request IMO.
Yes, you're right, from a HTTP perspective all properties should be present.
@iot.id is "control information". The PUT request needs to have mandatory properties. For example "properties" is not mandatory for a Thing but "description" is mandatory. When id is specified in url, like /Things(1), there is no need to specify id in the PUT body.
Based on the current specification for OGCSensorThings API, linked entities are not required in PUT request.
Datastream mandatory parameters Thing.ID, ObservedProperty.ID and Sensor.ID were missing in HTTP PUT to Datastream test