响应消息

响应消息

此处描述的响应消息提供了一个"通用"(即与域无关)结构,用于传达与客户请求相关的处理结果(即成功、警告、错误和信息性消息)的详细信息。需要注意的是,响应消息不会传达请求的结果(例如更新的资源表示形式),而是传达处理请求的结果。响应消息始终作为响应的消息正文中的实体进行通信。响应消息可以自己或沿请求结果进行传达。在第一种情况下,考虑导致 400 个错误请求响应的 POST 请求,其中消息正文在响应消息中返回错误消息列表。在第二种情况下,考虑一个 POST 请求,该请求会导致 200 OK 响应,其中消息正文同时返回创建的资源表示形式和警告消息列表。

有两种类型的响应消息可用:原子响应消息和批量响应消息。原子响应消息用于响应原子请求(管理单个实例资源的请求)。另一方面,批量响应消息用于响应批量请求(管理多个实例资源的请求);但是请注意,批量响应消息也可用于原子请求和批量请求的响应。

原子响应消息

原子响应消息可用于对原子请求的响应,原子请求是管理单个实例资源的请求。下面的示例演示了包含原子响应消息的响应消息正文。该示例显示更新实例资源尝试失败尝试的响应消息;请求结果代码指示"失败",并且消息包含错误代码和随附的消息文本。

响应消息正文

原子响应消息实例

{
    "messageId": {
        "value": "56ad5525-c0e9-4fe2-9a55-2bb186def538"
    },
    "requestId": {
        "value": "3dd116ae-cee7-47df-87f1-3104422be501"
    },
    "messageDateTime": "2019-03-11T15:30:00-06:00",
    "requestProcessingStatusCode": "Completed",
    "requestResultStatusCode": "Failed",
    "messages": [
        {
            "type": "Error",
            "code": "e005",
            "text": "The specified resource does not exist."
        }
    ]
}

批量响应消息

批量响应消息可用于对批量请求的响应,该请求管理多个实例资源。下面的示例演示了包含批量响应消息的响应消息正文。该示例显示更新三个实例资源时尝试更新的部分失败尝试的响应消息;请求结果代码指示"部分失败",资源响应包含实例资源特定的结果消息:更新实例资源"a123"和"c890"成功,而实例资源更新"b567"失败。

响应消息正文

批量响应消息实例

{
    "messageId": {
        "value": "ce36aa12-ac26-49e4-ae44-87b21c83b3ca"
    },
    "requestId": {
        "value": "1ade9c06-37aa-4825-b9a1-93c947c20a7c"
    },
    "messageDateTime": "2019-03-11T17:30:00-06:00",
    "requestProcessingStatusCode": "Completed",
    "requestResultStatusCode": "PartiallyFailed",
    "messages": [
        {
            "type": "Error",
            "code": "w002",
            "text": "The processing of one or more instances resources failed."
        }
    ],
    "resourceMessages": [
        {
            "resourceId": {
                "value": "a123"
            },
            "resourceResultStatusCode": "Succeeded"
        },
        {
            "resourceId": {
                "value": "b567"
            },
            "resourceResultStatusCode": "Failed",
            "messages": [
                {
                    "type": "Error",
                    "code": "e001",
                    "text": "The specified resource does not exist."
                }
            ]
        },
        {
            "resourceId": {
                "value": "c890"
            },
            "resourceResultStatusCode": "Succeeded"
        }
    ]
}