Difference between revisions of "Responses"
| Line 60: | Line 60: | ||
{| class="wikitable sortable"  | {| class="wikitable sortable"  | ||
| + | |+ Response Property Syntax  | ||
|-  | |-  | ||
! Property !! Type !! Default Value !! Mandatory !! Since Version !! class="unsortable" | Description    | ! Property !! Type !! Default Value !! Mandatory !! Since Version !! class="unsortable" | Description    | ||
Revision as of 12:16, 13 January 2021
By default, the JSON data is provided directly as root object. Please see this example code of a menu root object.
{
    "headline": "My Menu",
    "menu": [{
            "label": "My Menu Item"
        }]
}
This data structure is very suitable if the HTTP server hosts static JSON files. However, if the HTTP server uses a database or an external API to dynamically create JSON files, an extended data structure is useful. Therefore, it is possible to wrap any JSON data in a response object to have an unified root object and to provide advanced error handling. Please see this example code of a wrapped menu root object.
{
    "response": {
        "status": 200,
        "text": "OK",
        "message": null,
        "data": {
            "headline": "My Menu",
            "menu": [{
                    "label": "My Menu Item"
                }]
        }
    }
}
The next example code shows how an error response can look like.
{
    "response": {
        "status": 404,
        "text": "Not Found",
        "message": "Menu for database ID 'xyz' not found.",
        "data": null
    }
}
If you execute actions on server side, the server action response must always be wrapped in a response object. Please see the next example code of how a server action response can look like.
{
    "response": {
        "status": 200,
        "text": "OK",
        "message": null,
        "data": {
            "action": "menu:data",
            "data": {
                "headline": "My Menu",
                "menu": [{
                        "label": "My Menu Item"
                    }]
            }
        }
    }
}
Please see Actions#Server Actions for more information.
| Property | Type | Default Value | Mandatory | Since Version | Description | 
|---|---|---|---|---|---|
status | 
number | 
0 | 
Yes | 0.1.0 | 
 HTTP-compliant status code. This property must be set to  Note: Error responses must also be sent as successful HTTP (2xx) responses. The actual error status code is provided in this property.  | 
text | 
string | 
null | 
No | 0.1.0 | 
 HTTP-compliant status text.  | 
message | 
string | 
null | 
No | 0.1.0 | 
 This property is only used in error responses and can be used to provide a detailed error description.  | 
data | 
object | 
null | 
No | 0.1.0 | 
 This property is only used in success responses and contains the actual JSON data.  |