Deno - 如何从远程 API 或 URL 获取数据?

  • 本文关键字:URL 获取 数据 API Deno deno
  • 更新时间 :
  • 英文 :


我想知道如何使用 deno 从其他服务器和 API 获取数据?文档中的所有内容都教我如何制作 http 服务器并从本地源读取文件。但是我找不到任何关于在网络上阅读东西的有用信息。

如何从条带 API 读取 JSON 数据?或者,如果我想读取包含文本的HTML文件?

谢谢你的时间!

你需要做一个HTTP请求,因为在Deno中你使用fetch,浏览器使用的Web API相同。

要读取 JSON 响应,请执行以下操作:

const res = await fetch('https://api.stripe.com');
const data = await res.json();

如果你想要 HTML:

const res = await fetch('https://example.com');
const html = await res.text();
// Now you can use some HTML parsing lib

fetch需要--allow-net标志。

我只是给你一个获取Github存储库的GET请求的例子。

您可以根据需要更改 URL 和请求配置。

在下面给出的代码中,我正在调用Github的另一个API。通过使用fetch()方法,您可以做到这一点。

fetch()方法首先将 URL 作为第一个参数,下一个参数是RequestInit,该参数采用请求方法类型标头正文等,最后返回该 API 调用的 JSON 响应。

const githubResponse = async (): Promise<any> => {
const response = await fetch("https://api.github.com/search/repositories?q=android", {
method: "GET",
headers: {
"Content-Type": "application/json",
},
});
return response.json(); // For JSON Response
//   return response.text(); // For HTML or Text Response
}
console.log(await githubResponse());

我已经在一个名为测试.tsts文件中编写了上面的代码。因此,您可以通过下面给出的命令运行上述代码:

deno run --allow-net Testing.ts

接下来,我给你一个示例POST请求代码:

const githubResponse = async (): Promise<any> => {
const body: URLSearchParams = new URLSearchParams({
q: "AvijitKarmakar",
});
const response = await fetch("https://api.github.com/search/repositories", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: body
});
return response.json();
//   return response.text(); // For HTML or Text Response
}
console.log(await githubResponse());

您可以看到我创建了一个body对象并通过body参数在RequestInit中传递它,并将请求方法类型更改为POST。

Deno努力尽可能接近现有的浏览器API。

这意味着,您可以使用fetch.例:

// fetch-kitten.ts
fetch("https://placekitten.com/200/300").then(async (d) =>
Deno.writeFile("kitten.jpg", new Uint8Array(await d.arrayBuffer()))
);
命令行界面:
deno run --allow-net --allow-write fetch-kitten.ts

参考

相关内容

  • 没有找到相关文章