为什么 NASA APOD Api 突然停止工作?

Why NASA APOD Api stopped to work suddenly?

提问人:Mario Proietti 提问时间:6/10/2023 最后编辑:v-repinMario Proietti 更新时间:6/11/2023 访问量:306

问:

从几天前开始,NASA APOD API(https://api.nasa.gov/)突然停止工作。

下面是一个示例链接(带有演示密钥): https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY

关于谁使用此 API 的一些问题:

  • 你知道这个API不起作用的原因吗?
  • 是否有其他 URL(或方式)来获取此数据?

请给我一个答案,因为我的项目需要这些数据。

谢谢

我不知道如何解决;我以为是原始站点的 html 解析器,但它看起来很复杂(而且我不想在我的项目中包含脏数据)。

JSON API REST 前端

评论

0赞 greybeard 6/11/2023
可回答的编程问题在哪里?

答:

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正在新工作