У меня есть одностраничное приложение, в котором я хотел бы показать самые последние сообщения из блога Astro. Предоставляет ли astro API для простого доступа к такой информации из другого приложения?
Я использовал Astro Endpoints для создания пользовательского API для своего блога.
src/pages/recent-posts.json.ts
import { MarkdownInstance } from "astro";
import { Frontmatter, sortDateDescending } from "src/misc";
export async function get() {
const allPosts = import.meta.glob<MarkdownInstance<Frontmatter>>("./posts/article/*.md", { eager: true }); // Vite
const posts = sortDateDescending(Object.values(allPosts))
.filter((ele) => ele.frontmatter.draft != true)
.map((ele) => {
return {
title: ele.frontmatter.title,
url: ele.url,
thumbnailUrl: ele.frontmatter.image,
content: ele.rawContent(),
publishedDate: ele.frontmatter.date,
tags: ele.frontmatter.tags,
};
});
const LIMIT = 2;
return {
body: JSON.stringify(posts.slice(0, LIMIT)),
};
}
Теперь я могу получить самые последние сообщения с конечной точки /recent-posts.json
.
Вы можете добавить RSS-канал в свой блог и запросить его из своего приложения.