Closed Suntory-Y-Water closed 11 months ago
URLSearchParamsを使用してクエリパラメータを解析する
import { NextApiResponse } from 'next';
import { NextRequest, NextResponse } from 'next/server';
export async function GET(req: NextRequest, res: NextApiResponse) {
// URLSearchParamsを使用してクエリパラメータを解析
const searchParams = new URLSearchParams(req.nextUrl.search);
const idsParam = searchParams.get('ids');
if (!idsParam) {
return NextResponse.json({ error: 'IDが存在しません' }, { status: 400 });
}
const ids = idsParam.split(',');
// 各IDに対応するポケモンデータを非同期で取得
const pokemonDataPromises = ids.map(async (id) => {
const response = await fetch(`https://pokeapi.co/api/v2/pokemon/${id}`, { cache: 'no-store' });
return await response.json();
});
// すべてのデータを待機
const pokemonData = await Promise.all(pokemonDataPromises);
// 取得したデータを整形してレスポンスとして返送
const pokemonLists = pokemonData.map((data) => ({
name: data.name,
image: data.sprites.other['official-artwork'].front_default,
}));
return NextResponse.json(pokemonLists, { status: 200 });
}
要約
完了条件