初識 API:從靜態頁面到動態交互

在了解如何創建 API 之前,我們先來區分 API 和傳統的 靜態頁面。靜態頁面雖在某些場景下有用,但它們的最大局限性是:每次訪問時都返回相同的內容。這意味著,對于想要為不同用戶提供個性化體驗的應用程序,單純依賴靜態頁面是遠遠不夠的。

API 的出現正好解決了這個問題。通過 API,你可以根據每次請求的不同,動態地生成和返回數據,實現個性化的交互體驗。

例如,當你在一個電商網站瀏覽商品時,網站需要根據你的瀏覽歷史、購物車等信息,為你推薦相關商品。背后實現個性化推薦的技術就是通過 API 獲取和處理用戶的個人信息,從而為每個用戶提供更符合其需求的內容。

快速上手:使用 Next.js 創建你的第一個 API

為了讓你快速體驗創建 API 的過程,我們將使用 Next.js 框架來構建 API。Next.js 是一個基于 React 的服務器端渲染框架,提供了強大的 API 路由功能,能夠讓我們快速構建功能豐富的 API。

第一步:項目初始化

首先,確保你已經安裝了 Node.jsnpm(Node Package Manager)。如果你還沒有安裝,可以從官網下載并按照指引進行安裝。

然后,打開終端,創建一個新的項目目錄,并初始化項目:

mkdir my-api-project
cd my-api-project
npm init -y

接著,安裝 Next.js 以及必要的依賴:

npm install next react react-dom

第二步:創建 API

在項目根目錄下,創建一個 pages 文件夾。在 Next.js 項目中,這個文件夾用于存放所有的頁面文件。然后,在 pages 文件夾內再創建一個名為 api 的文件夾。這個 api 文件夾將用于存放我們的 API 文件。

接下來,在 api 文件夾中創建一個名為 tempo.js 的文件,作為我們第一個簡單的 API:

// pages/api/tempo.js
export default function handler(req, res) {
  const date = new Date();
  res.status(200).json({ date: date.toGMTString() });
}

第三步:運行開發服務器

運行開發服務器并訪問你的 API:

npx next dev

打開瀏覽器,訪問 http://localhost:3000/api/tempo,你將看到返回的 JSON 數據,其中包含當前的時間。恭喜你,你已經成功創建了第一個 API!

部署到生產環境:讓世界看到你的 API

創建 API 只是第一步,為了讓其他人也能訪問你的 API,你需要將其部署到生產環境中。這里,我們選擇使用 Vercel 作為部署平臺。Vercel 提供了簡單易用的部署流程,并且其免費套餐對于中小型項目來說已經足夠強大。

部署步驟


首先,在 Vercel 官網注冊一個賬號。注冊完成后,點擊 “New Project” 按鈕,創建一個新的項目。在項目創建過程中,你需要將你的項目代碼托管到 GitHub 上。如果你還沒有將項目推送到 GitHub,可以按照以下步驟操作:

git init
git add .
git commit -m "initial commit"
git remote add origin < your-github-repository-url >
git push -u origin main

Vercel 項目創建頁面,選擇你的 GitHub 倉庫,并按照指引完成項目創建。創建完成后,Vercel 會自動開始部署你的項目。部署完成后,你將獲得一個部署鏈接,任何人都可以通過這個鏈接訪問你的 API。

安全與性能優化:保護你的 API 并提升用戶體驗

在實際應用中,API 需要處理一些敏感信息,如密碼、訪問令牌等。為了保護這些信息,我們需要使用 環境變量 來存儲它們,而不是將它們直接寫在代碼中。

使用環境變量保護敏感信息

Next.js 支持通過 .env 文件來配置環境變量。在項目根目錄下創建一個 .env 文件,并添加你的環境變量:

CONVERTKIT_API_SECRET=your_api_secret_key

然后,在你的 API 文件中,通過 process.env 來訪問這些環境變量:

// pages/api/tempo.js
export default async function handler(req, res) {
  const apiSecret = process.env.CONVERTKIT_API_SECRET;
  const response = await fetch(`https://api.convertkit.com/v3/subscribers?api_secret=${apiSecret}`);
  const data = await response.json();
  res.status(200).json({ date: new Date().toGMTString(), subscribers: data.total_subscribers });
}

性能優化:緩存你的 API 響應

為了提升 API 的性能,我們還可以利用 Vercel 的緩存功能。通過設置響應頭中的 Cache-Control 屬性,可以實現緩存控制。例如,我們可以設置 API 的響應在服務器端緩存 10 秒,在這期間,Vercel 會直接從緩存中返回數據,而無需重新請求后端。

// pages/api/tempo.js
export default async function handler(req, res) {
  const apiSecret = process.env.CONVERTKIT_API_SECRET;
  const response = await fetch(`https://api.convertkit.com/v3/subscribers?api_secret=${apiSecret}`);
  const data = await response.json();
  res
    .status(200)
    .setHeader('Cache-Control', 'public, s-maxage=10, stale-while-revalidate')
    .json({ date: new Date().toGMTString(), subscribers: data.total_subscribers });
}

總結:開啟你的 API 之旅

通過本文,你已經學會了如何使用 Next.js 創建一個簡單的 API,并將其部署到生產環境中。同時,我們也探討了如何使用 環境變量 保護敏感信息,以及如何通過緩存優化 API 的性能。這些知識為你構建更復雜、更安全的 API 奠定了堅實的基礎。

現在,你可以開始嘗試構建自己的 API 了。無論是為你的個人項目提供數據支持,還是為你的公司業務打造定制化的 API,這些技能都將為你打開一扇新的大門。勇敢地邁出第一步,讓你的創意通過 API 的形式,與世界分享!

原文引自YouTube視頻:https://www.youtube.com/watch?v=f7JWDLFhR_c

上一篇:

React 狀態管理:從基礎到 Context API 實戰

下一篇:

MCP 與 API:探索大語言模型與外部數據源的連接方式
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費