maxvaer/docker-openapi-php-client

Docker Engine API 是由 Docker Engine 提供的 HTTP API。它是 Docker 客户端与 Engine 通信所使用的 API,因此 Docker 客户端能做的事情都可以通过 API 完成。客户端的大多数命令直接映射到 API 端点(例如,`docker ps` 对应 `GET /containers/json`)。以下

dev-master 2020-05-22 09:34 UTC

This package is auto-updated.

Last update: 2024-09-22 19:28:27 UTC


README

Docker Engine API 是由 Docker Engine 提供的 HTTP API。它是 Docker 客户端与 Engine 通信所使用的 API,因此 Docker 客户端能做的事情都可以通过 API 完成。

客户端的大多数命令直接映射到 API 端点(例如,`docker ps` 对应 `GET /containers/json`)。一个显著的例外是运行容器,这需要多个 API 调用。

错误

API 使用标准的 HTTP 状态码来指示 API 调用的成功或失败。响应体将是以下格式的 JSON

{
  \"message\": \"page not found\"
}

版本控制

API 通常在每个版本中都会更改,因此 API 调用是版本化的,以确保客户端不会中断。要锁定到 API 的特定版本,请将版本号作为 URL 的前缀,例如,调用 /v1.30/info 以使用 /info 端点的 v1.30 版本。如果 URL 中指定的 API 版本不被守护进程支持,将返回 HTTP 400 Bad Request 错误消息。

如果您省略了版本前缀,则将使用当前版本的 API(v1.40)。例如,调用 /info 与调用 /v1.40/info 相同。不使用版本前缀使用 API 已被弃用,将在未来的版本中删除。

未来即将发布的 Engine 版本应支持此版本的 API,因此即使您的客户端正在与较新的 Engine 通信,它也可以继续工作。

API 使用开放的架构模型,这意味着服务器可能会在响应中添加额外的属性。同样,服务器将忽略任何额外的查询参数和请求体属性。当您编写客户端时,您需要忽略响应中的额外属性,以确保在与其他较新的守护进程通信时不会中断。

身份验证

注册表的身份验证由客户端处理。客户端必须将身份验证详细信息发送到需要与注册表通信的各种端点,例如 POST /images/(name)/push。这些作为 X-Registry-Auth 报头发送,作为 Base64 编码的(JSON)字符串,其结构如下

{
  \"username\": \"string\",
  \"password\": \"string\",
  \"email\": \"string\",
  \"serveraddress\": \"string\"
}

serveraddress 是不带协议的域名/IP。在此结构中,需要双引号。

如果您已经从 /auth 端点 获取了身份令牌,您可以仅传递此令牌而不是凭据

{
  \"identitytoken\": \"9cbaf023786cd7...\"
}

此 PHP 包由 OpenAPI Generator 项目自动生成

  • API 版本:1.40
  • 构建包:org.openapitools.codegen.languages.PhpClientCodegen

要求

PHP 7.1 及以上

安装与使用

Composer

要使用 Composer 安装绑定,请将以下内容添加到 composer.json

{
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/GIT_USER_ID/GIT_REPO_ID.git"
    }
  ],
  "require": {
    "GIT_USER_ID/GIT_REPO_ID": "*@dev"
  }
}

然后运行 composer install

手动安装

下载文件并包含 autoload.php

    require_once('/path/to/OpenAPIClient-php/vendor/autoload.php');

测试

要运行单元测试

composer install
./vendor/bin/phpunit

入门

请遵循安装过程,然后运行以下命令

<?php
require_once(__DIR__ . '/vendor/autoload.php');



$apiInstance = new OpenAPI\Client\Api\ConfigApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client()
);
$body = new \OpenAPI\Client\Model\UNKNOWN_BASE_TYPE(); // \OpenAPI\Client\Model\UNKNOWN_BASE_TYPE | 

try {
    $result = $apiInstance->configCreate($body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling ConfigApi->configCreate: ', $e->getMessage(), PHP_EOL;
}

?>

API端点文档

所有URI均相对于https:///v1.40

模型文档

授权文档

所有端点均不需要授权。

作者