Docker远程API JSON模式定义

时间:2015-05-13 18:56:48

标签: c++ json docker

我有一个使用REST api远程与docker dameon通信的程序。它以json格式接收有关图像,容器,存储库的信息。我想将这个REST API输出从json格式转换为C ++结构。

JSON格式总是采用键,值对的形式,其中键是字符串,但值可以是字符串,数字,数组等。

我想知道docker json对象是否有标准模式定义?

感谢。

1 个答案:

答案 0 :(得分:3)

首先,official remote API documentation就是JSON schema。但是,因为它只包含""示例请求和没有权威的架构定义,它可能不是您正在寻找的。

对于Docker远程API,似乎似乎不是官方source code repository。但是,API响应是直接从相应的 Go结构生成的,您可以在std::accumulate的单个文件中找到它们。

例如,考虑Container响应类型的定义:

// GET  "/containers/json"
type Port struct {
    IP          string
    PrivatePort int
    PublicPort  int
    Type        string
}

type Container struct {
    ID         string            `json:"Id"`
    Names      []string          `json:",omitempty"`
    Image      string            `json:",omitempty"`
    Command    string            `json:",omitempty"`
    Created    int               `json:",omitempty"`
    Ports      []Port            `json:",omitempty"`
    SizeRw     int               `json:",omitempty"`
    SizeRootFs int               `json:",omitempty"`
    Labels     map[string]string `json:",omitempty"`
    Status     string            `json:",omitempty"`
}

这基本上包含了在请求/containers/json URI时可能遇到的所有可能的密钥及其数据类型。所有其他资源表示也可以以相同的方式找到。