3

我试图了解如何最好地使用客户端 Javascript 访问 Google Drive。我写了一些测试代码来插入一个只有元数据的新文件。我找到了一个使用此代码的示例:

var request = gapi.client.request({
   'path': '/drive/v2/files',
   'method': 'POST',
   'body': {
      "title" : "Meta File 1.json",
      "mimeType" : "application/json",
      "description" : "This is a test of creating a metafile"
      }
   });

上面的代码运行良好,但没有使用 gapi.client.drive.files.insert。所以我搜索了stackoverflow并尝试了下面的代码:

var mydata = {};
mydata.title = "Meta File using Insert.json";
mydata.mimeType = "application/json";
mydata.description = "We are using insert to create a new file, but only the metadata.";

var request = gapi.client.drive.files.insert( {'resource': mydata} );

这段代码也可以正常工作,所以我的问题是我应该使用哪个?是否有任何理由使用各种 api 调用,如 files.insert,或者我应该总是使用 gapi.client.request 来处理所有事情?

4

1 回答 1

7

你实际上有三个选择...

  1. gapi..request(您的第一个选项)
  2. gapi..files (您的第二个选项)
  3. 纯javascript(即根本不使用任何谷歌库)

每个选项的基础是相同的 HTTP 请求/响应,因此功能是相同的。这可能归结为个人喜好和信任。

个人偏好你想了解你的应用程序在堆栈中一直在做什么,还是更喜欢使用高级抽象?

信任,Google JS 库是闭源的,并且是任意更新的,并且没有警告。因此,如果 G 工程师破坏了它(就像他们过去所做的那样),您将无处可去,并且您的应用程序将关闭,直到它被修复。如果您有一个主流用例,它应该会得到修复,但不能保证。如果您使用的是边缘案例(可能是不寻常的 nodejs 配置,或特殊的浏览器),您可能会变得高高在上。

我个人使用选项 1 的基础是,如果 Drive 团队向 API 添加新功能,我可以立即使用它,而无需等待 JS 客户端库维护者也支持它。它还使调试更容易,因为通过线路传输的内容与我的代码直接相关。

现在 Drive 支持 CORS 上传,我正在从选项 1 迁移到选项 3。如果您想构建 chrome 扩展或打包的应用程序,选项 3 也是唯一可行的选项。

于 2013-10-08T04:15:51.180 回答