Module dify_client::response

source ·
Expand description

This module contains the response structures used in the Dify SDK.

It includes error responses, result responses, chat message responses, and more. These structures are used to deserialize JSON responses from the Dify API.

§Examples

Deserialize an error response:

use dify_client::response::ErrorResponse;

let json = r#"
    {
        "code": "unknown_error",
        "message": "An unknown error occurred",
        "status": 503
    }
"#;

let error_response: ErrorResponse = serde_json::from_str(json).unwrap();

assert_eq!(error_response.code, "unknown_error");
assert_eq!(error_response.message, "An unknown error occurred");
assert_eq!(error_response.status, 503);

Deserialize a chat message response:

use dify_client::response::{ChatMessagesResponse, AppMode};
use serde_json::json;
use std::collections::HashMap;

let json = r#"
    {
        "base": {
            "message_id": "12345",
            "conversation_id": "67890",
            "created_at": 1705395332
        },
        "event": "message",
        "mode": "chat",
        "answer": "Hello, how can I help you?",
        "metadata": {
            "key1": "value1",
            "key2": "value2"
        }
    }
"#;

let mut metadata = HashMap::new();
metadata.insert("key1".to_string(), json!("value1"));
metadata.insert("key2".to_string(), json!("value2"));

let chat_response: ChatMessagesResponse = serde_json::from_str(json).unwrap();

assert_eq!(chat_response.base.message_id, "12345");
assert_eq!(chat_response.base.conversation_id.unwrap(), "67890");
assert_eq!(chat_response.base.created_at, 1705395332);
assert_eq!(chat_response.event, "message");
assert_eq!(chat_response.mode, AppMode::Chat);
assert_eq!(chat_response.answer, "Hello, how can I help you?");
assert_eq!(chat_response.metadata, metadata);

Structs§

Enums§