本指南演示了如何利用 JSON Server 创建模拟 API 并将其无缝集成到使用 TypeScript 构建的 Next.js 15 应用程序中。 我们将介绍设置,通过实际示例说明每个 HTTP 方法(GET、POST、PUT、DELETE),并重点介绍 Next.js 15 的新 use
数据获取功能的使用。
了解 JSON 服务器
JSON Server 使用简单的 JSON 文件简化了 RESTful API 的创建。其主要特点包括:
为什么采用 Next.js 15 的 JSON 服务器?
这种组合有几个优点:
设置 JSON 服务器
在 Next.js 项目中安装 JSON Server 作为开发依赖项:
<code class="language-bash">npm install --save-dev json-server</code>
在项目根目录中创建一个db.json
文件:
<code class="language-json">{ "users": [ { "id": 1, "name": "John Doe", "email": "john@example.com" }, { "id": 2, "name": "Jane Smith", "email": "jane@example.com" } ] }</code>
将脚本添加到您的package.json
以启动服务器:
<code class="language-json">"scripts": { "json-server": "json-server --watch db.json --port 4000" }</code>
--delay
--delay
标志模拟网络延迟,对于测试加载状态很有用:
<code class="language-json">"scripts": { "json-server": "json-server --watch db.json --port 4000 --delay 1000" }</code>
这引入了 1 秒的延迟。 使用以下命令启动服务器:
<code class="language-bash">npm run json-server</code>
您的 API 可以在 http://localhost:4000
访问。
使用 HTTP 方法
GET 方法获取数据。 以下是检索用户的方法:
<code class="language-typescript">'use client'; import { use } from 'react'; async function fetchUsers() { const res = await fetch('http://localhost:4000/users'); if (!res.ok) { throw new Error('Failed to fetch users'); } return res.json(); } export default function UsersPage() { const users = use(fetchUsers()); return ( <div> <h1>Users</h1> <ul> {users.map((user: { id: number; name: string }) => ( <li key={user.id}>{user.name}</li> ))} </ul> </div> ); }</code>
说明:
fetchUsers
:异步获取用户数据。use
:用于服务器端数据获取的 Next.js 15 挂钩。POST 方法创建新记录:
<code class="language-typescript">'use client'; import { useState } from 'react'; export default function AddUser() { const [name, setName] = useState(''); const [email, setEmail] = useState(''); const handleAddUser = async () => { const res = await fetch('http://localhost:4000/users', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name, email }), }); if (res.ok) { alert('User added successfully!'); } }; return ( <div> <h2>Add New User</h2> <input type="text" value={name} onChange={(e) => setName(e.target.value)} /> <input type="email" value={email} onChange={(e) => setEmail(e.target.value)} /> <button onClick={handleAddUser}>Add User</button> </div> ); }</code>
PUT 方法修改现有记录:
<code class="language-typescript">'use client'; import { useState } from 'react'; export default function UpdateUser() { // ... (similar to POST, but with an ID field and PUT request) }</code>
DELETE 方法删除记录:
<code class="language-typescript">'use client'; import { useState } from 'react'; export default function DeleteUser() { // ... (similar to PUT, but with a DELETE request) }</code>
最佳实践
.env
文件中,以便更好地进行配置管理。--delay
测试加载状态并模拟较慢的网络条件。结论
JSON Server 是 Next.js 15 前端开发的宝贵资产,提供了一种简单而有效的方法来模拟 API 并显着加速开发。 这些适用于所有 HTTP 方法的示例使您能够将 JSON Server 无缝集成到您的项目中。
以上是Next.js 的 JSON 服务器您需要了解的一切的详细内容。更多信息请关注PHP中文网其他相关文章!