diff --git a/src/pages/portfolio/[id].jsx b/src/pages/portfolio/[id].jsx new file mode 100644 index 0000000..027d8c9 --- /dev/null +++ b/src/pages/portfolio/[id].jsx @@ -0,0 +1,56 @@ +import { Footer } from "../../components/Footer/Footer"; +import { Header } from "../../components/Header/Header"; +import styles from "./portfolio.module.scss"; + +// pages/blog/[id].js +export default function BlogId({ blog }) { + return ( +
+
+
+

{blog.title}

+
+
+
+ ); +} + +// 静的生成のためのパスを指定します +export const getStaticPaths = async () => { + const key = { + headers: { "X-API-KEY": process.env.API_KEY }, + }; + const data = await fetch( + "https://ratio-observatory.microcms.io/api/v1/contents", + key + ) + .then((res) => res.json()) + .catch(() => null); + const paths = data.contents.map((content) => `/portfolio/${content.id}`); + return { paths, fallback: false }; +}; + +// データをテンプレートに受け渡す部分の処理を記述します +export const getStaticProps = async (context) => { + const id = context.params.id; + const key = { + headers: { "X-API-KEY": process.env.API_KEY }, + }; + const data = await fetch( + "https://ratio-observatory.microcms.io/api/v1/contents/" + id, + key + ) + .then((res) => res.json()) + .catch(() => null); + return { + props: { + blog: data, + }, + }; +};