Zur Vereinheitlichung von Fehlermeldungen, Statusmeldungen und Infomeldungen und für mögliche Erweiterungen ersetzen Response-Objekte in bestimmten Web-Services die SOAP-Fehler. Zum Beispiel für die Web-Services XMLImportService
und ProductService
.
Das Response-Objekt beinhaltet den Response-Content und den Response-Header. Der Response-Header beinhaltet Fehlercodes, Fehlerbeschreibungen und weitere Detailangaben:
<ns:getXMLImportErrorLogsResponse>
<ns:
return
xsi:type=
"ax269:Response"
>
<ax269:content xsi:type=
"ax269:ResponseContent"
>
<ax269:payload xsi:nil=
"true"
/>
</ax269:content>
<ax269:header xsi:type=
"ax269:ResponseHeader"
>
<ax269:error xsi:type=
"ax270:WSError"
>
<ax270:detail xsi:nil=
"true"
/>
<ax270:error xsi:type=
"ax270:Errors"
>
<ax270:code>
1
</ax270:code>
<ax270:description>User not logged in.</ax270:description>
</ax270error>
</ax269:error>
</ax269:header>
</ns:
return
>
</ns:getXMLImportErrorLogsResponse>
Für die Web-Service-Operation getSPCData (Web-Service-Operation) wird im Response-Content JSON ausgegeben.
<ns:getProductDataResponse xmlns:ns=
"http://services.viaWS.viaMEDICI.com"
>
<ns:
return
xmlns:ax2102=
"http://viaWS.viaMEDICI.com/xsd"
xmlns:ax299=
"http://product.data.viaWS.viaMEDICI.com/xsd"
xmlns:ax297=
"http://data.viaWS.viaMEDICI.com/xsd"
xmlns:ax294=
"http://error.response.viaWS.viaMEDICI.com/xsd"
xmlns:ax293=
"http://response.viaWS.viaMEDICI.com/xsd"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:type=
"ax293:Response"
>
<ax293:content xsi:type=
"ax293:ResponseContent"
>
<ax293:payload>
{
"productId"
:
"RAMC02"
,
"productName"
:
"RAMC02"
,
"id"
:
null
,
"productConfiguratorSeparatorForGeneratedProductnr"
:
"-"
,
"productConfiguratorPratTypeUsedForConfiguration"
:
"required"
,
"tenatId"
:
"Default"
,
"productConfiguratorMaxNumberOfResultRecords"
:
50000
,
"attributes"
: [{
"epimId"
:
3000000957
,
"label"
:
"Number"
,
"datatype"
:
"N"
,
"lowerBound"
:
0
,
"upperBound"
:
1
,
"id"
:
"number"
,
"usageType"
:
""
,
"preDecimalPlaces"
:
3
,
"decimalPlaces"
:
3
,
"ranges"
: [{
"epimId"
:
3000000177
,
"rangeMin"
:
0.0
,
"rangeMax"
:
10.0
,
"rangeStep"
:
2.0
}, {
"epimId"
:
3000000178
,
"rangeMin"
:
10.0
,
"rangeMax"
:
100.0
,
"rangeStep"
:
5.0
}
],
}
</ax293:payload>
</ax293:content>
<ax293:header xsi:type=
"ax293:ResponseHeader"
>
<ax293:error xsi:nil=
"true"
/>
</ax293:header>
</ns:
return
>
</ns:getProductDataResponse>
Der WSError-Teil des Response-Headers im Response-Objekt kann ausgewertet werden: Wenn ein WSError vorhanden ist, kann der Fehlercode ausgewertet werden und es kann entsprechend reagiert werden. Wenn kein WSError vorhanden ist, kann der Inhalt des Response-Contents im Bereich payload
benutzt werden.
Ein Response-Objekt ohne Content und Header:
<ns:loginResponse>
<ns:
return
xsi:type=
"ax236:LoginData"
>
<ax236:logged>
true
</ax236:logged>
<ax236:sessionId>5348ECC5B344D2F2392CAFA32F03BBF</ax236:sessionId>
</ns:
return
>
</ns:loginResponse>