星期日, 17 8 月, 2025
No Result
View All Result
育心文具行

育心文具行

  • 首頁
  • 心得x體驗
  • 筆記x備忘
  • 閒談x雜記
  • 我的工具箱
  • 關於我
育心文具行
  • 首頁
  • 心得x體驗
  • 筆記x備忘
  • 閒談x雜記
  • 我的工具箱
  • 關於我
No Result
View All Result
育心文具行
Home 筆記x備忘

實作 js 函式庫包裝為 API 提供給後端呼叫

2025-02-04
in 筆記x備忘
Reading Time:3 mins read
A A
0

最近在想有滿多 js 實作資料處理的函式庫,於是想看有沒有 nodejs 或是相似的程式語言可以相容 js 實做包裝城後端,於是想到了用 Cloudflare Worker 服務來實作。

我拿 iztro 這套服務來實作,我認為很適合包裝成 API 呼叫的功能有幾個特色:

  1. 以處理、整理資料為目的的服務。
  2. 不需要相依其他套件( e.g. jQuery)
  3. 產生的結果是一包字串(json, xml 等),或是能轉成 base64 的檔案字串。

先附上 Github repo 。名字叫做「My Iztro Worker」,有夠隨便,哈。

這個服務基於 Cloudflare Worker 實作,實作以下功能:

  • API 服務:接受包含生日、出生時間、性別等參數的 HTTP GET 請求,返回相應的紫微斗數資訊。
  • 使用說明頁面:當請求缺少必要參數時,返回一個包含 API 使用說明和測試表單的 HTML 頁面,方便使用者瞭解如何使用該 API。
  • 速率限制:為了防止濫用,對每個客戶端 IP 設置了每分鐘最多 10 次請求的限制。

實作了一個 usage.js 頁面作為測試 form 表,並且使用 Worker 特有的功能實作呼叫頻率的限制;src/index.js 中可以依照原始套件的說明參考修改。

部署方式請參考請參考原始碼的 README,我作了一個線上範例,視狀況可能會停用,且用且珍惜:

iztro-cloudflare-worker/README.md at master · lazyjerry/iztro-cloudflare-worker

github.com

使用 Cloudflare Worker 服務實作 JavaScript 函式庫功能,以 iztro 為例 – lazyjerry/iztro-cloudflare-worker

我有一個夢,是把各種小服務甚至切成更小的顆粒,都做成內網獨立 api,在透過 docker 或是其他工具包起來,以後有專案的話就可以整包像撒網一樣丟出來用,視狀況調整結構和服務內容,這開發過程,可能也是一段沒飯吃的日子呀。


同場加映,請 AI 協助生成實作 nodejs 的說明:
—

將 JavaScript 函式庫包裝為 API,提供後端呼叫,是現代軟體開發中常見的需求。這種方法能夠將複雜的邏輯封裝起來,透過標準化的介面供其他應用程式或服務使用。以下是實作此項目的簡要流程:

  1. 選擇適當的執行環境: 首先,選擇一個適合執行 JavaScript 的環境。Node.js 是一個常見的選擇,因為它允許在伺服器端執行 JavaScript。此外,像 Cloudflare Workers 這樣的伺服器無關環境也提供了在邊緣節點執行 JavaScript 的能力。
  2. 建立專案結構: 為您的 API 建立一個新的專案目錄,並初始化專案:
   mkdir my-js-api
   cd my-js-api
   npm init -y

這將建立一個包含預設設定的 package.json 檔案。

  1. 安裝相依套件: 根據您的需求,安裝必要的相依套件。例如,若您需要處理 HTTP 請求,可以安裝 Express.js:
   npm install express
  1. 撰寫 API 邏輯: 在專案目錄中,建立一個主檔案(例如 index.js),並撰寫處理 HTTP 請求的邏輯。以下是一個使用 Express.js 的簡單範例:
   const express = require('express');
   const app = express();
   const port = 3000;

   // 引入您的 JavaScript 函式庫
   const myLibrary = require('./myLibrary');

   app.use(express.json());

   app.post('/api/your-endpoint', (req, res) => {
     const input = req.body.input;
     const result = myLibrary.yourFunction(input);
     res.json({ result });
   });

   app.listen(port, () => {
     console.log(`API 伺服器正在 http://localhost:${port} 上運行`);
   });

在這個範例中,我們建立了一個 POST 端點 /api/your-endpoint,接受 JSON 格式的請求,並使用 myLibrary 中的函式處理輸入。

  1. 測試 API: 在本機運行您的 API 伺服器,並使用工具(如 Postman)或命令列工具(如 curl)進行測試:
   curl -X POST http://localhost:3000/api/your-endpoint -H "Content-Type: application/json" -d '{"input": "your data"}'

確保您的 API 能夠正確處理請求並返回預期的結果。

  1. 部署 API: 根據您的需求,將 API 部署到適當的環境中。例如,您可以將其部署到雲端服務提供商(如 AWS、Heroku)或使用 Docker 容器進行部署。
  2. 實作速率限制和安全性: 為了防止濫用,建議實作速率限制機制。此外,確保您的 API 僅允許授權的請求,並實作適當的驗證和授權機制。

透過上述步驟,您可以將 JavaScript 函式庫包裝為 API,供後端系統呼叫,實現功能的模組化和重用性。

Tags: APIBackendcloudflareDevelopmentjavascriptRateLimitRESTserverlesswebworkers
Share22Tweet14
Previous Post

MacOS 上將指定資料夾內檔案繁體轉簡體

Next Post

Mac 上使用 pyenv 管理 python 環境

Related Posts

筆記x備忘

如何在網站中整合 Google reCAPTCHA v3

關於 Google reCAPTCHA ...

2024-10-22
100
筆記x備忘

使用 Cloudflare Workers 處理前端跨域問題

在 Web Application 走前...

2024-09-01
100
筆記x備忘

使用 Nginx 設定通過 Cloudflare 的真實 IP 與只允許 Cloudflare IP 來的流量。

一次講兩件事,都是和 Cloudflar...

2024-08-07
100
筆記x備忘

前端 web worker 筆記

關於前端的 JS 技術還真的是需要筆記的...

2023-10-06
100
筆記x備忘

Cloudflare Workers 服務介紹

如果有使用 cloudflare 服務,...

2022-10-17
100
心得x體驗

Docker 初體驗

最近在嘗試用 docker 建構各種環境...

2021-07-29
100
Load More
Next Post

Mac 上使用 pyenv 管理 python 環境

MacOS 添加本地伺服器的 DNS

Visual Studio Code 的 PHP CS Fixer 設定

全站搜尋

No Result
View All Result

關於我

育心文具行

Jerry Lin

程式設計師

育心文具行是一家文具店,老闆的小兒子是一個設計師,職業是設計程式,興趣是設計人,倒是還沒有實作的機會。
--
所有的相遇都不是巧合。
在廣告公司待了三年有兩年多在做內容產品,離職後繼續在內容產業走了四年多,最後選則離開台灣的公司體制在家 SOHO ,碰上了 2020 年疫情才知道原來自己這是走在時代的潮流尖端。 感謝許多老闆和貴人相助,至今目前尚能存活,在台北街頭努力著。

近期文章

  • LLM 生成參數清單與說明
  • 使用 google 的 Gemini CLI 來製作字幕
  • 2025-07-29 社交模式檢討
  • 2025-07-25 社交模式檢討
  • 2025-07-12 N8N Workshop 筆記心得

分類

  • 心得x體驗 (47)
  • 筆記x備忘 (79)
  • 閒談x雜記 (15)

贊助買咖啡

Facebook Instagram RSS

標籤

android ci4 cloudflare Codeigniter codeigniter 4 flutter git ios linode linux MAC macos nginx php plugin QBQ!問題背後的問題 server work sublime sublime text vps vue.js vue3 What if What If? 如果這樣,會怎樣? wordpress 備份 原則 團隊,從傳球開始 團隊,從傳球開始:五百年都難以超越的 UCLA 傳奇教練伍登培養優越人才和團隊的領導心法 外掛 如果這樣,會怎樣?:胡思亂想的搞怪趣問 正經認真的科學妙答 媒體識讀 工作的原則 心得 意志力 活動心得 灰階思考 第三部分 第二部分 第四部分 股癌 自慢10 自慢10:18項修練 謝孟恭 讀書心得

文章分類

  • 心得x體驗 (47)
  • 筆記x備忘 (79)
  • 閒談x雜記 (15)

近期文章

  • LLM 生成參數清單與說明
  • 使用 google 的 Gemini CLI 來製作字幕
  • 2025-07-29 社交模式檢討
  • 2025-07-25 社交模式檢討
  • 2025-07-12 N8N Workshop 筆記心得

近期留言

  • 「Bolin Lai」於〈WordPress 之中藍新金流開啟後, Elementor 外掛有時會打不開的問題處理〉發佈留言
  • 「Jerry Lin」於〈WordPress 之中藍新金流開啟後, Elementor 外掛有時會打不開的問題處理〉發佈留言
  • 「JCL」於〈WordPress 之中藍新金流開啟後, Elementor 外掛有時會打不開的問題處理〉發佈留言

文章月曆

2025 年 8 月
日 一 二 三 四 五 六
 12
3456789
10111213141516
17181920212223
24252627282930
31  
« 7 月    

© 2020 hipster.crazyjerry.studio - a blog about experience, notes and nonsense, by Jerry Lin.

No Result
View All Result
  • 首頁
  • 心得x體驗
  • 筆記x備忘
  • 閒談x雜記
  • 我的工具箱
  • 關於我

© 2020 hipster.crazyjerry.studio - a blog about experience, notes and nonsense, by Jerry Lin.