An open API service indexing awesome lists of open source software.

https://github.com/redayzarra/nextjs-course


https://github.com/redayzarra/nextjs-course

Last synced: 7 months ago
JSON representation

Awesome Lists containing this project

README

          

This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).

## Getting Started

Start a new Next project:
```bash
npx create-next-app@latest
```

Then, run the development server:

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.

## Data Fetching

You can fetch data and use caching with this:

```typescript
interface User {
id: number;
name: string;
}

const UsersPage = async () => {
const res = await fetch("URL", {
next: { revalidate: 10 },
});
const users: User[] = await res.json();

return (
<>

Users



    {users.map((user) => (
  • {user.name}

  • ))}

>
);
};
```

## API with Next.js

### GET request

You can create a GET api endpoint with this:

```typescript
import { NextRequest, NextResponse } from "next/server";

export function GET(request: NextRequest) {
return NextResponse.json([
{ id: 1, name: "ReDay" },
{ id: 2, name: "Josh" },
{ id: 3, name: "Mark" },
]);
}

```

### POST request

You can create a POST api endpoint with this:

```typescript
export async function POST(request: NextRequest) {
const body = await request.json();

if (!body.name) {
return NextResponse.json(
{ error: "Name is required! Please try again." },
{ status: 400 }
);
}

return NextResponse.json({ id: 1, name: body.name }, { status: 201 });
}
```

### PUT request

You can create a PUT api endpoint with this:

```typescript
export async function PUT(
request: NextRequest,
{ params }: { params: { id: number } }
) {
const body = await request.json();

if (!body.name) {
return NextResponse.json({ error: "Name is required." }, { status: 400 });
}

if (params.id > 10) {
return NextResponse.json({ error: "User not found." }, { status: 404 });
}

return NextResponse.json({ id: 1, name: body.name });
}
```

### DELETE request

You can create a DELETE api endpoint with this:

```typescript
export function DELETE(
request: NextRequest,
{ params }: { params: { id: number } }
) {
if (params.id > 10) {
return NextResponse.json({ error: "User not found." }, { status: 404 });
}

return NextResponse.json({});
}
```

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.