」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 當後端未準備就緒時,如何將 MockAPI 與 Next.js 應用程式一起使用

當後端未準備就緒時,如何將 MockAPI 與 Next.js 應用程式一起使用

發佈於2024-11-02
瀏覽:944

How to Use MockAPI with a Next.js App When the Backend Is Not Ready

作为前端开发人员,在完全实现前端之前,您经常会发现自己在等待后端完成其 API。幸运的是,像 MockAPI.io 这样的工具可以帮助您模拟工作后端,使您能够立即对应用程序的前端部分进行编码。

在这篇博文中,我们将探讨如何将 MockAPI.io 集成到新的 Next.js 应用程序中,以在真正的后端正在开发时模拟后端数据。

什么是 MockAPI.io?

MockAPI.io 是一个易于使用的平台,允许开发人员创建模拟 REST API。使用此工具,您可以模拟真实的 API 端点、定义资源(数据模型)并测试您的应用程序,而无需实际的后端。它对于前端开发和原型设计特别有用。

为什么使用 MockAPI.io?

独立工作:无需等待后端开发完成即可开始前端工作。
更快的迭代:它允许您快速模拟端点并测试不同的场景。
API模拟:可以模拟真实API的结构,方便切换到实际后端。
非常适合协作:允许您通过定义预期的 API 结构与后端开发人员密切合作。

分步指南:使用 Next.js 应用程序设置 MockAPI.io

1。创建一个新的 Next.js 应用程序
首先,我们创建一个新的 Next.js 项目。运行以下命令来初始化应用程序:

npx create-next-app@latest mockapi-nextjs-app

进入您的项目目录:

cd mockapi-nextjs-app

启动开发服务器以确保一切设置正确:

npm run dev

您的应用程序现在应该在 http://localhost:3000 上运行。

2.创建 MockAPI.io 帐户
接下来,如果您还没有帐户,请在 MockAPI.io 上注册。登录后,您可以通过单击“创建新项目”按钮来创建新项目。

3.创建资源(端点)
创建项目后,定义资源,例如“Users”:

单击添加资源并将其命名为“Users”。
定义 id、姓名、电子邮件和头像(用于用户个人资料图片)等属性。
MockAPI.io 会自动为您生成一些虚假的用户数据。
您现在将拥有一个 API 端点列表,例如:

GET /users - 获取所有用户。
POST /users - 创建一个新用户。
PUT /users/{id} - 更新用户。
DELETE /users/{id} - 删除用户。
API 的基本 URL 类似于 https://mockapi.io/projects/{your_project_id}/users.

4。从 Next.js 中的 MockAPI 获取数据
现在您已经有了模拟 API,您可以使用 Next.js 的 getServerSideProps 或 getStaticProps 将其集成到您的 Next.js 应用程序中。让我们从 /users 端点获取数据并将其显示在应用程序中。

以下是如何在 Next.js 项目中使用 getServerSideProps 从 MockAPI.io 获取用户数据。

在pages/users.js中创建一个新页面:

import React from 'react';
import axios from 'axios';

const Users = ({ users }) => {
  return (
    

User List

    {users.map((user) => (
  • {`${user.name}'s {user.name} - {user.email}
  • ))}
); }; // Fetch data on each request (SSR) export async function getServerSideProps() { try { const response = await axios.get('https://mockapi.io/projects/{your_project_id}/users'); const users = response.data; return { props: { users }, // Will be passed to the page component as props }; } catch (error) { console.error("Error fetching users:", error); return { props: { users: [] }, }; } } export default Users;

在此示例中:

getServerSideProps 发出服务器端请求以从模拟 API 端点获取用户数据。
用户列表包含个人资料图片、姓名和电子邮件。

5。测试模拟 API 集成
运行开发服务器来测试集成:

npm run dev

导航到 http://localhost:3000/users,您应该会看到从 MockAPI.io 获取的用户列表显示在您的 Next.js 应用程序中。

6。添加新功能:创建用户
让我们添加一个功能,您可以通过 Next.js 应用程序中的表单创建新用户。我们将向 MockAPI 端点发送 POST 请求。

在pages/add-user.js中创建表单组件:

import { useState } from 'react';
import axios from 'axios';

const AddUser = () => {
  const [name, setName] = useState('');
  const [email, setEmail] = useState('');
  const [avatar, setAvatar] = useState('');

  const handleSubmit = async (e) => {
    e.preventDefault();

    try {
      const response = await axios.post('https://mockapi.io/projects/{your_project_id}/users', {
        name,
        email,
        avatar
      });
      console.log("User added:", response.data);
    } catch (error) {
      console.error("Error adding user:", error);
    }
  };

  return (
    

Add New User

setName(e.target.value)} /> setEmail(e.target.value)} /> setAvatar(e.target.value)} />
); }; export default AddUser;

现在,当您提交表单时,将在 MockAPI 中创建一个新用户。

7.过渡到真正的后端
一旦您的实际后端准备就绪,替换模拟 API 就很简单了。更新 axios 请求中的基本 URL 以指向真正的后端,并且您的应用程序应该无缝运行,无需对结构进行任何更改。

结论

将 MockAPI.io 与 Next.js 结合使用是构建和测试前端应用程序的绝佳方法,即使后端仍在进行中也是如此。通过模拟真实的 API 交互,您可以保持前端开发的顺利进行,并确保实际后端完成后的平稳过渡。

无论您是在大型团队还是独立项目中工作,MockAPI.io 对于前端开发人员来说都是一个有价值的工具。今天就开始使用它来简化您的开发流程!

版本聲明 本文轉載於:https://dev.to/rajeshkumaryadavdotcom/how-to-use-mockapi-with-a-nextjs-app-when-the-backend-is-not-ready-3m1n?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 在 Java 中使用 Fisher-Yates 演算法對陣列進行洗牌
    在 Java 中使用 Fisher-Yates 演算法對陣列進行洗牌
    介紹 在電腦科學領域,對元素數組或列表進行洗牌是一種常見的操作,可用於各種應用程序,從隨機化遊戲結果到分發牌組中的紙牌。為此目的最有效的演算法之一是 Fisher-Yates Shuffle,也稱為 Knuth Shuffle。該演算法確保數組的每個排列都有相同的可能性,這使其成為...
    程式設計 發佈於2024-11-07
  • 我作為全端開發人員的旅程:與 MERN Stack 一起成長的一年
    我作為全端開發人員的旅程:與 MERN Stack 一起成長的一年
    你好!我是 Shivaji Zirpe,一位充滿熱情的全端開發人員,專門研究 MERN 堆疊。在過去的一年裡,我深入研究了 Web 開發領域,廣泛使用了 React、Node.js、MongoDB 等。在這篇文章中,我想分享我的旅程、經歷以及我作為開發人員的成長過程。 ?我的經歷一...
    程式設計 發佈於2024-11-07
  • 什麼是 FHIR?
    什麼是 FHIR?
    介紹 與 fhir 相關的儲存庫清單 - Awesome-fhir 快速醫療保健互通性資源 FHIR 伺服器是一款強大的工具,徹底改變了醫療保健產業。 它充當存取和交換關鍵醫療資料的網關,實現不同系統和組織之間的無縫互通性。 什麼是 FHIR 伺服器? FHIR...
    程式設計 發佈於2024-11-07
  • 為什麼常數引用可以延長 C++ 中臨時變數的生命週期?
    為什麼常數引用可以延長 C++ 中臨時變數的生命週期?
    透過常數引用擴展右值生命週期在C 中,常量引用不僅充當不可變別名,還可以延長臨時變量的生命週期。為什麼 C 委員會決定要實現此行為? 此功能的一個基本原理是隱藏類別和函數的實作細節。考慮一個可以傳回行向量或列向量的矩陣類別。為了最佳化效能,類別可以選擇根據其行優先或列優先組織傳回內部值的參考。透過要...
    程式設計 發佈於2024-11-07
  • 如何在 Go 中將切片作為可變參數傳遞?
    如何在 Go 中將切片作為可變參數傳遞?
    將解壓縮的切片作為可變參數傳遞在 Go 中,可變參數函數接受不定數量的特定類型的參數。將切片的切片傳遞給此類函數時,了解所涉及的類型轉換和解包機制至關重要。 如果切片包含與可變參數參數類型相同的元素,則可以在不使用切片的情況下傳遞切片拆包。然而,如果切片中包含多種類型的混合或切片中包含切片,情況會變...
    程式設計 發佈於2024-11-07
  • 使用 TypeScript 和語義版本控制建立並發布 npm 庫
    使用 TypeScript 和語義版本控制建立並發布 npm 庫
    ?编写并发布最少的代码 要在 npm 上发布库,您需要: 一个npm 帐户;您可以在这里注册。 您的代码作为一个项目;即,您的代码目录中有一个 package.json,其中指定了名称和版本。请注意,您可以通过以下方式生成此文件: npm init 项目中的index.js。请记住...
    程式設計 發佈於2024-11-07
  • 如何將包含的 PHP 腳本的值傳回主腳本?
    如何將包含的 PHP 腳本的值傳回主腳本?
    從包含的 PHP 腳本返回在 PHP 中,return() 函數通常用於退出腳本或函數。但是,它不能用於從包含的腳本返回到主腳本。 要從包含的腳本返回並恢復主腳本中的執行,請考慮使用以下技術: 1.使用輸出緩衝:在包含的腳本內,使用ob_start() 將要傳回的輸出儲存在變數中。然後,在主腳本中,...
    程式設計 發佈於2024-11-07
  • samwise-CLI:開源 Terraform 模組依賴性追蹤器
    samwise-CLI:開源 Terraform 模組依賴性追蹤器
    地形 Terraform 是一種用 Hashicorp 配置語言 (HCL) 編寫的基礎設施即程式碼 (IaC) 工具。本文假設讀者已經使用 Terraform 並了解模組的工作原理。 在 Terraform 中編碼的每個人都創建了自己的模組,或至少使用了其他人的模組。 ...
    程式設計 發佈於2024-11-07
  • CSS 鮮為人知但有用的功能
    CSS 鮮為人知但有用的功能
    CSS 有一些鲜为人知但有用的功能。我们将研究其中的一些。 1. CSS的scroll-snap-type属性和scroll-snap-stop属性 滚动快速停止 当为父元素下的每个子元素设置此属性时,当您快速滚动屏幕时,使用触控板或触摸屏快速滚动时将阻止下一个元素通...
    程式設計 發佈於2024-11-07
  • PHP中參數替換後如何用PDO確定最終的SQL查詢?
    PHP中參數替換後如何用PDO確定最終的SQL查詢?
    透過PDO 在PHP 中確定最終的SQL 參數化查詢對於存取MySQL 資料庫時在PHP 中透過PDO 進行參數化查詢,獲得最終結果標記替換後的SQL 查詢可能具有挑戰性。 PHP 環境不會保留完整的查詢,因為它將標記的查詢與參數分開傳送到資料庫。 答案 1:如 Ben James 指出的,在 PH...
    程式設計 發佈於2024-11-07
  • 如何在循環中建立動態變​​數名稱:數組方法
    如何在循環中建立動態變​​數名稱:數組方法
    循環中的動態變數名稱在嘗試使用標記 i 在循環中建立動態變​​數名稱時,遇到語法錯誤。為了解決這個問題,讓我們探索一種使用陣列的替代方法。 陣列標記被初始化為空。在循環內,數組的每個元素都被分配一個與第 i 次迭代相對應的值。 var markers = []; for (var i = 0; i ...
    程式設計 發佈於2024-11-07
  • 為什麼 `localhost` 和 `127.0.0.1` 在 PHP 的 `mysql_connect()` 中表現不同?
    為什麼 `localhost` 和 `127.0.0.1` 在 PHP 的 `mysql_connect()` 中表現不同?
    為什麼 localhost 和 127.0.0.1 在 PHP 的 mysql_connect() 中表現不同? 在 mysql_connect() 中使用 localhost 會使連線比使用 127.0.0.1 更快? 在 mysql_connect() 中使用 localhost 和 127.0...
    程式設計 發佈於2024-11-07
  • 城市技術趨勢開發人員指南
    城市技術趨勢開發人員指南
    想像一下,在一個地方,廢物可以轉化為資源,交通順暢,建築物可以自己產生能源。由於科技的進步,這個未來願景正開始成為現實。 我們將在這篇文章中探討城市科技的最新發展,並為開發商如何為更有效率和永續的未來做出貢獻提供實用建議。 好奇城市如何像一個活的有機體一樣思考、呼吸和反應?發現物聯網在智慧城市...
    程式設計 發佈於2024-11-07
  • 如何在Java 8中實作嵌套物件的多層分組?
    如何在Java 8中實作嵌套物件的多層分組?
    Java 8 中的多層分組使用Nested GroupBy本文探討了在處理嵌套類別時如何實現多層分組Java 8 。具體來說,目標是按 key1 欄位對項目進行分組,然後對於每組項目,進一步按 key2 欄位對它們進行分組。最終,輸出應該是一個以 key1 作為外鍵的映射,以及一個 key2 到子項...
    程式設計 發佈於2024-11-07
  • 如何:身份驗證
    如何:身份驗證
    在建立 Web 應用程式時,安全地管理使用者驗證非常重要。兩個重要的庫是: bcryptjs – 用於安全地散列和比較密碼。 JSON Web 令牌 – 用於簽署和驗證 JWT 令牌以進行使用者身份驗證。 我們將介紹如何在 Node.js 應用程式中實作這兩個函式庫,以實現安全密碼管理和基於令牌...
    程式設計 發佈於2024-11-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3