提问人:Mario Proietti 提问时间:6/10/2023 最后编辑:v-repinMario Proietti 更新时间:6/11/2023 访问量:306
为什么 NASA APOD Api 突然停止工作?
Why NASA APOD Api stopped to work suddenly?
问:
从几天前开始,NASA APOD API(https://api.nasa.gov/)突然停止工作。
下面是一个示例链接(带有演示密钥): https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY
关于谁使用此 API 的一些问题:
- 你知道这个API不起作用的原因吗?
- 是否有其他 URL(或方式)来获取此数据?
请给我一个答案,因为我的项目需要这些数据。
谢谢
我不知道如何解决;我以为是原始站点的 html 解析器,但它看起来很复杂(而且我不想在我的项目中包含脏数据)。
答:
1赞
LarryTLlama
6/11/2023
#1
也许 API 只是刚刚宕机?此处显示相同,但出现 HTTP 504 网关超时错误。在它重新上线之前,你能做的不多,希望几天后就能上线。
非开发人员页面仍在 APOD 网站上工作,存档可在此处找到。HTML 解析器可以工作,但是我强烈建议不要请求这些页面,因为它们不是为此而设计的。它们可能会在没有通知的情况下更改,这可能会使您的 HTML 解析器在更改时变得无用。作为临时修复,这可能是可能的,但这不是一个好主意。
如果您希望在该网站创建 HTML 解析器,您可以使用 fetch api 使用类似的东西。这可能与其他 img 元素冲突,但由于您没有提供任何代码,因此这是我对它的实现
// Use promises with async
async function getAPOD() {
// Fetch and convert to text
let res = await fetch("https://apod.nasa.gov/apod/astropix.html");
let html = await res.text();
console.log(html)
// Set the text as HTML.
document.getElementById("hidden").innerHTML = html;
// Grab the <img>'s src from the HTML
let img = document.querySelector("img").src;
console.log(src)
// Create a new IMG element in the container
document.getElementById("container").createElement("img").src = img;
}
getAPOD();
#hidden {
display: none;
}
<div id="container">
</div>
<div id="hidden">
</div>
一个不错的选择可能是托管自己的。您可以使用 apod-api Github 站点上的教程。
如果您无法托管自己的主机,不幸的是,最好的办法就是等待它。不好意思!
评论
1赞
Mario Proietti
6/15/2023
谢谢你回答我。现在看来,API正在新工作
评论