gamingsolved/paperspace-api-client

0.1.3 2017-08-20 21:00 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:34:12 UTC


README

版权(c)2017 Manuel Kiessling,根据MIT许可协议

Total Downloads Latest Stable Version Latest Unstable Version

关于

本项目维护与Paperspace API不官方兼容的规格,并使用这些规格基于Guzzle自动生成PHP客户端,可用于与API交互。

生成的客户端作为Packagist库提供给Composer生态系统。

您可以在此处交互式探索Paperspace API v0.1.3的Swagger文档。

安装

只需运行composer require gamingsolved/paperspace-api-client即可安装最新版本。

使用方法

在您的代码中,您可以使用API客户端,如下所示。示例假设您想使用Paperspace API的0.1.3版本。

<?php

require_once('<path-to-vendor-folder>/autoload.php');

use Gamingsolved\Paperspace\Api\Client\Version0_1_3 as PaperspaceApiClient;

$config = PaperspaceApiClient\Configuration::getDefaultConfiguration();
$config->setApiKey('X-API-Key', 'your-api-key-here');

$createMachineParams = new PaperspaceApiClient\Model\CreateMachineParams();
$createMachineParams->setRegion('East Coast (NY2)');
$createMachineParams->setMachineType('Air');
$createMachineParams->setSize(50);
$createMachineParams->setBillingType('hourly');
$createMachineParams->setMachineName('My first machine');
$createMachineParams->setTemplateId('t23ol2r'); // Windows 10 (Server 2016) Quadro - Licensed

$machinesApiClient = new PaperspaceApiClient\Api\MachinesApi(null, $config);

try {
  $result = $machinesApi->createMachine($createMachineParams);
  print_r($result);
} catch (\Exception $e) {
  echo 'Exception when calling MachinesApi->createMachine: ', $e->getMessage(), PHP_EOL;
}

src-generated/0.1.3/docs/Api,您可以找到0.1.3 API客户端的完整文档,其中包含更多示例。

匹配项目版本和Paperspace API版本

使用以下表格作为参考,了解本项目支持哪些版本的Paperspace API

变更日志

本项目的所有重大更改都将在此部分记录。

格式基于Keep a Changelog,本项目遵循语义化版本控制

未发布

0.1.3 - 2017-08-20

修复

  • machines/show 响应类型 (#3)

0.1.2 - 2017-08-15

新增

  • 变更日志

更改

  • 在API定义中删除了Region的冗余

修复

  • templates/list 过滤 (#1)
  • machines/list 过滤 (#2)

0.1.1 - 2017-08-14

更改

  • 将Composer依赖项提升到最新版本
  • 改进API定义元数据

0.1.0 - 2017-08-14

更改

  • 完成第一次Packagist发布

如何修改和扩展API规范

本项目尽可能自动生成提供的PHP API客户端(见下文)。为此,本项目管理基于不同版本的Paperspace API的Open API规范/ Swagger定义。由于目前没有(已知)直接根据Paperspace API Node.js客户端代码生成这些定义的方法,因此Swagger定义是手动创建和更新的。

为此,每个API调用的代码文档用作参考——例如,创建机器API调用在官方Node.js API客户端代码https://github.com/Paperspace/paperspace-node/blob/v0.1.3_work/lib/machines/create.js中定义,其codedoc块用作api-definitions/0.1.3/paperspace-api-swagger-definition.json中定义的参考。

API规范是按API版本定义的,即每个Paperspace API版本都有一个规范(每个版本在api-definitions下有一个文件夹)。

在风格、命名和结构方面,以下是一些创建API定义的指南,这些定义既要忠实于API,又能生成易于使用的PHP客户端

  • 顶级客户端结构 == 顶级API结构:machines -> MachinesApi
  • 通过operationId进行流体方法签名:MachinesApi->createMachine()MachinesApi->listMachines()
  • Swagger定义遵循整体命名规范:MachinesApi::createMachine(new CreateMachineParams())

如何自动生成API客户端

PHP API客户端使用swagger-codegen v2.3.0生成。

定义文件api-definitions/<api-version>/paperspace-api-swagger-definition.json作为输入规范,生成的源代码放置在src-generated/<api-version>

为了(重新)生成所有客户端的代码,按照以下步骤进行

cd
git clone https://github.com/swagger-api/swagger-codegen
cd swagger-codegen
git checkout 2.3.0
mvn clean package -DskipTests

cd <folder with this README.md file>
./bin/generate-clients.sh ~/swagger-codegen/modules/swagger-codegen-cli/target/swagger-codegen-cli.jar

附加说明

本项目既不与Paperspace公司有关联,也不受其支持。