我有一个使用REST api远程与docker dameon通信的程序。它以json格式接收有关图像,容器,存储库的信息。我想将这个REST API输出从json格式转换为C ++结构。
JSON格式总是采用键,值对的形式,其中键是字符串,但值可以是字符串,数字,数组等。
我想知道docker json对象是否有标准模式定义?
感谢。
答案 0 :(得分:3)
首先,official remote API documentation就是JSON schema。但是,因为它只包含""示例请求和没有权威的架构定义,它可能不是您正在寻找的。 p>
对于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时可能遇到的所有可能的密钥及其数据类型。所有其他资源表示也可以以相同的方式找到。