Wildcard Offering extension
The Wildcard Offering extension allows to manage offerings via requests. This includes creating new offerings, update offerings and delete offerings. The requests are sent as KVP requests via HTTP-GET and the service returns JSON encoded responses.
Introduction
The Wildcard Offering extensions uses the
Administration extension which offers a KVP interface via HTTP-GET requests. The Wildcard Offering extension adds the support for the following managment requests:
- exists an offering
- get offering information
- create a new offering
- update an offering
- delete an offering
In the following sections the requests are described in detail.
Requests and responses
This section describes the Wildcard Offering extension requests in detail. The default URL is
http:\\HOSTNAME:PORT\SOS_NAME\admin
+ the parameters defined in the following subsections.
Check for existing offering
With this request you can check if an offering exists in the SOS. The two mandatory parameters are:
parameter |
value |
description |
request |
OfferingExists |
The identifier for the request type |
id |
THE_OFFERING_ID |
The offering identifier to check |
Here is an exmaple of the request:
/admin?request=OfferingExists&id=THE_OFFERING_ID
The returned response looks like this:
true
parameter |
value |
description |
request |
GetOffering |
The identifier for the request type |
id |
THE_OFFERING_ID |
The offering identifier to get information for |
Here is an exmaple of the request:
/admin?request=GetOffering&id=THE_OFFERING_ID
The returned response looks like this:
{"id":"WATER_SPEED","name":"The waterspeed at a gage in a river", "allProcedures":true, "allObservedProperties":false, "allFeaturesOfInterest":true, "procedures":["urn:ogc:object:feature:Network:IFGI:ifgi-network-1","urn:ogc:object:feature:Sensor:IFGI:ifgi-sensor-2","urn:ogc:object:feature:Sensor:IFGI:ifgi-sensor-1","urn:ogc:object:feature:Station:IFGI:ifgi-station-1","urn:ogc:object:feature:Sensor:All-Types-Station"], "observedProperties":["urn:ogc:def:phenomenon:OGC:1.0.30:waterspeed"], "featuresOfInterest":["foi_1001","foi_2001","AllTypesFoi"]}
Create a new offering
parameter |
value |
description |
request |
CreateOffering |
The identifier for the request type |
id |
THE_OFFERING_ID |
The offering identifier |
name |
THE_OFFERING_ID |
The offering name |
allProcedures |
true/false |
Set true if all procedures should relate to the offering. If false, this parameter can be omitted |
procedures |
PROCEDURE_IDs |
Comma separated list of related procedure ids. If allProcedures=true, this parameter can be omitted |
allFeaturesOfInterest |
true/false |
Set true if all featuresOfInterest should relate to the offering. If false, this parameter can be omitted |
featuresOfInterest |
FEATURE_OF_INTEREST_IDs |
Comma separated list of related featureOfInterest ids.If allFeaturesOfInterest=true, this parameter can be omitted |
allObservedProperties |
true/false |
Set true if all observedProperties should relate to the offering. If false, this parameter can be omitted |
observedProperties |
OBSERVED_PROPERTY_IDs |
Comma separated list of related observedProperty ids. If allObservedProperties=true, this parameter can be omitted |
Here is an exmaple of the request:
/admin?request=CreateOffering&id=THE_OFFERING_ID&name=The name&allProcedures=true&allFeaturesOfInterest=true&observedProperties=urn:ogc:def:phenomenon:OGC:1.0.30:waterlevel,urn:ogc:def:phenomenon:OGC:1.0.30:waterspeed
The returned response looks like this:
"Offering THE_OFFERING_ID created"
Update an offering
parameter |
value |
description |
request |
UpdateOffering |
The identifier for the request type |
id |
THE_OFFERING_ID |
The offering identifier |
name |
THE_OFFERING_ID |
The offering name |
allProcedures |
true/false |
Set true if all procedures should relate to the offering. If false, this parameter can be omitted |
procedures |
PROCEDURE_IDs |
Comma separated list of related procedure ids. If allProcedures=true, this parameter can be omitted |
allFeaturesOfInterest |
true/false |
Set true if all featuresOfInterest should relate to the offering. If false, this parameter can be omitted |
featuresOfInterest |
FEATURE_OF_INTEREST_IDs |
Comma separated list of related featureOfInterest ids.If allFeaturesOfInterest=true, this parameter can be omitted |
allObservedProperties |
true/false |
Set true if all observedProperties should relate to the offering. If false, this parameter can be omitted |
observedProperties |
OBSERVED_PROPERTY_IDs |
Comma separated list of related observedProperty ids. If allObservedProperties=true, this parameter can be omitted |
Here is an exmaple of the request:
/admin?request=UpdateOffering&id=THE_OFFERING_ID&name=New name&allProcedures=true&allFeaturesOfInterest=true&allObservedProperties=true
The returned response looks like this:
"Offering THE_OFFERING_ID updated"
Delete an offering
parameter |
value |
description |
request |
DeleteOffering |
The identifier for the request type |
id |
THE_OFFERING_ID |
The offering identifier for the offering to delete |
Here is an exmaple of the request:
/admin?request=DeleteOffering&id=THE_OFFERING_ID
The returned response looks like this:
"Offering THE_OFFERING_ID deleted"
Exceptions
If an invalid request is send or an error occurs during the processing a OWS exception is returned encoded in XML. Here is an example of an exception:
<?xml version="1.0" encoding="UTF-8"?>
<ows:ExceptionReport xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="0.0.1" xsi:schemaLocation="http://www.opengis.net/ows/1.1 http://schemas.opengis.net/ows/1.1.0/owsAll.xsd">
<ows:Exception exceptionCode="InvalidRequest" locator="SosAdmin">
<ows:ExceptionText>Offering THE_OFFERING_ID doesn't exist</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>