Статус ответа в NextJS
Помимо тела ответа клиент смотрит
на код состояния: 200 значит успех,
201 - ресурс создан, 404 - не найден.
При вызове Response.json
второй аргумент - объект с полем
status.
Давайте явно вернем 201 при создании
и 404, если запись для чтения
по id отсутствует. Обновим обработчики
в users/route.js и users/[id]/route.js:
import { users } from './data';
export async function POST(request) {
let body = await request.json();
let newUser = {
id: users.length + 1,
name: body.name,
};
users.push(newUser);
return Response.json(newUser, { status: 201 });
}
import { users } from '../data';
export async function GET(request, { params }) {
let { id } = await params;
let user = users.find(function (item) {
return String(item.id) === id;
});
if (!user) {
return Response.json({ message: 'User not found' }, { status: 404 });
}
return Response.json(user);
}
Верните 404 для несуществующего города и 201 при добавлении нового - как в примере с пользователями.
- /src/
- /app/
- /users/
- data.js
- route.js
- /[id]/
- route.js
- /users/
- /app/