Do-wrapper 是一个专门用于与 DigitalOcean API 通信的 npm 包。 它提供了一种简单的方法来通过 JavaScript 代码访问和管理 DigitalOcean 资源。在本教程中,我们将介绍如何使用 do-wrapper 包和 DigitalOcean API。
开始使用
在开始之前,您需要安装 node.js(版本需要大于或等于 8),并且已拥有 DigitalOcean 账户以及一个 Personal Access Token。
安装 do-wrapper
可以使用 npm 包管理器来安装 do-wrapper:
npm install do-wrapper
或者,在你的项目中添加以下内容到dependencies
部分来安装它:
{ "dependencies": { "do-wrapper": "^4.0.0" } }
通过 do-wrapper 实例化 API 对象
使用 do-wrapper 操作 DigitalOcean 的第一步是实例化一个 API 对象,我们可以通过以下代码来实现它:
const DoWrapper = require('do-wrapper'); const api = new DoWrapper.default({ token: 'YOUR_PERSONAL_ACCESS_TOKEN' });
执行操作
一旦您成功实例化了 do-wrapper 对象,就可以通过 DigitalOcean API 来执行各种操作。接下来,我们将通过例子来说明如何通过 do-wrapper 包来完成服务器的创建操作。
-- -------------------- ---- ------- ----- --------- - ---------------------- ----- --- - --- ------------------- ------ ---------------------------- --- -- ------- -------------------- ------- ------- --------- ------- ------- --------- -------- ------------------- ----------- ----- ---------- ------ ------- ----- ------------ ----- --------------------- ----- ---------- ----- ------- - ----- - ---------------------- - ----------------- -- ------------- - ---------------- --
通过上述代码,我们可以看到如何通过 do-wrapper 包,并结合 DigitalOcean API 来创建服务器。您可以根据 DigitalOcean API 官方文档,结合 do-wrapper 的 API 手册,和实际项目需求来进行 API 操作。
手册
使用 do-wrapper 进行 API 操作时,您需要从 do-wrapper 对象的一个方法开始。 do-wrapper 提供了许多方法,以下是它们的简要信息:
方法名 | 参数 | 说明 |
---|---|---|
actions(:dropletId) | dropletId: Number / String | 获取 droplet 上的 actions 列表。 |
certificates | 无 | 获取所有证书(只有 DigitalOcean / Certbot 一起使用的证书)。 |
certificatesCreate | opts: Object | 创建证书,参阅 官方文档。 |
certificatesDelete | certificateId: Number / String | 删除一个证书。 |
certificatesGet | certificateId: Number / String | 获取一个证书的细节。 |
certificatesLetsEncrypt | opts: Object | 使用 Let's Encrypt API 创建形式的自动 SSL 证书,参阅官方文档。 |
certificatesUpdate | certificateId: Number / String opts: Object |
更新证书细节,查看官方文档。 |
domains | 无 | 获取所有的域。 |
domainsCreate | opts: Object | 创建新的域记录,参阅 官方文档。 |
domainsDelete | recordId: Number / String | 删除一个域记录。 |
domainsGet | recordId: Number / String | 获取一个域名记录的细节。 |
domainsRecords | domainName: String / Number | 获取指定域名记录的列表。 |
domainsRecordsCreate | domainName: String / Number opts: Object |
为指定的域名创建一条新的记录,查看官方文档。 |
domainsRecordsDelete | domainName: String / Number recordId: Number / String |
删除指定域名下的特定记录。 |
domainsRecordsGet | domainName: String / Number recordId: Number / String |
获取指定域名下的特定记录的细节。 |
domainsUpdate | domainName: String / Number opts: Object |
更新指定域名的信息,查看官方文档。 |
droplets | 无 | 获取所有 droplets 的列表。 |
dropletsCreate | opts: Object | 创建一个 droplet,参阅官方文档。 |
dropletsDelete | dropletId: Number / String | 删除一个 droplet。 |
dropletsGet | dropletId: Number / String | 获取一个 droplet 的细节信息 |
dropletsKernels(:dropletId) | dropletId: Number / String | 获得关于 droplet 可用内核的信息 |
dropletsSnapshots | 无 | 获得当前账户下所关联的 snapshot 列表 |
dropletsBackups | 无 | 获取当前帐户下关联的所有备份的列表。 |
dropletsActions(:dropletId) | dropletId: Number / String | 获取 droplet 的 actions 列表。 |
dropletsNeighbors(:dropletId) | dropletId: Number / String | 列出 droplet 的邻居。 |
dropletsNeighborsRemove(:dropletId) | dropletId: Number / String | 删除 droplet 邻居。 |
dropletsRestore | dropletId: Number / String imageId: Number / String |
恢复 droplet 并基于指定的镜像ID创建一个新的droplet。 |
dropletsNeighborsAdd(:dropletId) | dropletId: Number / String neighborId: Number / String |
向 droplet 添加邻居。 |
dropletsUpgrades(:dropletId) | dropletId: Number / String | 列出可用的 droplet 升级。 |
images | 无 | 获取所有可用图像的列表。 |
imagesDelete | imageId: Number / String | 删除一个特定的 image。 |
imagesGet | imageId: Number / String | 获取一个特定的 image 详细信息。 |
imagesUpdate | imageId: Number / String opts: Object |
更新特定镜像的属性。 |
imagesActions | imageId: Number / String | 查询一个特定 image 的 actions。 |
keys | 无 | 获取当前账户下所有 SSH key 的列表 |
keysCreate | data: Object | 向您的账户中添加新 SSH key。 |
keysDelete | id: Number / String | 删除指定的 SSH key。 |
keysGet | id: Number / String | 获取指定 PublicKey 的信息。 |
neighbors | 无 | 获取邻居的列表。 |
projects | 无 | 获得当前帐户下的项目列表。 |
projectsCreate | opts: Object | 创建一个新项目。 |
projectsGet | projectId: Number / String | 获取指定的项目。 |
projectsUpdate | projectId: Number / String opt: Object |
更新一个项目。 |
projectsDelete | projectId: Number / String | 删除指定的项目。 |
regions(:regionId) | regionId: Number / String | 获取特定区域 ID 的细节信息。 |
sizes | 无 | 获得可用的 droplet size 列表。 |
sshKeys | 无 | 获取所有 SSH key 表。 |
sshKeysCreate | data: Object | 创建新的 SSH key。查看官方文档来获取详细信息。 |
sshKeysDelete | id: Number / String | 删除一个指定 SSH key。 |
sshKeysGet | id: Number / String | 获取指定 SSH key 的详情信息。 |
tags | 无 | 获取当前帐户下的所有标签。 |
volumes | 无 | 获取帐户中所有的卷。 |
volumesAction | volumeId: Number / String action: Object |
对指定的卷执行特定操作 |
volumesCreate | opts: Object | 创建一个新的 volume。查看官方文档来获取更多细节。 |
volumesDelete | volumeId: Number / String | 删除指定的 volume。 |
volumesGet | volumeId: Number / String | 获取指定 volume 的细节。 |
volumesNeighbors(:volumeId) | volumeId: Number / String | 获取卷的邻居列表。 |
volumesResize | volumeId: Number / String sizeGigabytes: Number |
调整指定 volume 的大小 |
volumesActions(:volumeId) | volumeId: Number / String | 获取特定卷上的 actions 列表。 |
volumesNeighborsAdd(:volumeId) | volumeId: Number / String dropletId: Number / String |
向一个卷添加 droplet。 |
volumesNeighborsRemove(:volumeId) | volumeId: Number / String neighborId: Number / String |
对卷删除邻居。 |
domainsGetAllRecords(:domainName) | domainName: String / Number | 获取指定域名下的记录列表。 |
imageActions | imageId: Number / String | 获取针对特定 image 的 actions 列表。 |
loadBalancers | 无 | 获取当前帐户下的所有负载均衡器。 |
loadBalancersCreate | opts: Object | 在给定的地点创建负载均衡器。查看官方文档。 |
loadBalancersDelete | loadBalancerId: Number/String | 删除一个指定的负载均衡器。 |
loadBalancersGet | loadBalancerId: Number/String | 获取指定负载均衡器的细节信息。 |
loadBalancersUpdate | loadBalancerId: Number/String opts: Object |
更新一个负载均衡器。 |
oneClickApp | 无 | 获取当前帐户下所有一个单击应用程序的列表 |
oneClickAppGet | slug: String | 获取指定的一个单击应用程序的信息。 |
regions | 无 | 获取可用数据中心的列表。 |
sizing | 无 | 获取可用 droplet 大小的列表。 |
tagsDelete | tagName: String | 删除指定的 tag。 |
tagsCreate | name: String | 在您的账户中创建新标记。 |
tagsGet | tagName: String | 获取指定标签的信息。 |
tagsTagResources | opts: Object | 向指定资源添加标记。查看官方文档。 |
tagsUntagResources | opts: Object | 从指定资源删除标记。查看官方文档来获取详细信息。 |
volumesAttach | volumeId: Number / String dropletId: Number / String |
在 droplet 中附加卷。查看官方文档来获取详细信息。 |
volumesDetach | volumeId: Number / String dropletId: Number / String |
在 droplet 中取消附加卷。查看官方文档来获取详细信息。 |
每个方法都返回一个 promise。因此,使用 Promise 解析返回值,是处理查询结果的一种非常有效和简单的方法。
示例代码
以下是一个完整的示例代码,用于获取 DigitalOcean 帐户的所有 droplet。在执行前,请确保已安装 do-wrapper(已在本教程的前面阐述),已替换 YOUR_PERSONAL_ACCESS_TOKEN 为 DigitalOcean AccessToken:
-- -------------------- ---- ------- ----- --------- - ---------------------- ----- --- - --- ------------------- ------ ----------------------------- --- ----- -------- ------------------ - --- - ----- -------- - ----- --------------- -- -- -------- ------------------------------------ - ----- ----- - ---------------- ---- ------- -- ------------- - - -- ---- -------------------
总结
通过本教程,您已经学会了使用 do-wrapper 包来访问并管理 DigitalOcean API。您还可以使用 do-wrapper 包中的其他 API 方法来执行其他各种操作。该手册还包括大量的示例和详细信息,以帮助您了解和使用 do-wrapper API。如果您感兴趣,建议您查阅官方 documentation。
如果您有任何疑虑或问题,请在评论中留言,也可以查看官方文档或创建 issues。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60760