鍵.png)
使用這些基本 REST API 最佳實踐構(gòu)建出色的 API
$ cd moesif-email
$ npm init -y && npm i express moesif-nodejs
如果一切順利,輸出應(yīng)該包含以下幾行:
- express@4.17.1
- moesif-nodejs@3.0.0
我們將在 Node.js 和 Express 的基礎(chǔ)上構(gòu)建我們的 API 和注冊網(wǎng)站。Moesif SDK for Express 將把 API 監(jiān)控數(shù)據(jù)發(fā)送到 Moesif 服務(wù)。
首先,我們需要創(chuàng)建一個網(wǎng)站。我們將使用 Moesif 瀏覽器 SDK 發(fā)送具有特定用戶 ID 的客戶端事件。這將在 Moesif 服務(wù)上創(chuàng)建帶有元數(shù)據(jù)的新用戶,稍后,我們將允許將該用戶鏈接到我們將從網(wǎng)站發(fā)送的 API 請求。moesif-email/index.html 的代碼如下所示:
<script src="http://unpkg.com/moesif-browser-js@^1/moesif.min.js"></script>
<h1>Demo API</h1>
<button id="start">Send client event</button>
<button id="api">Send API request</button>
<pre id="target"></pre>
<script type="text/javascript">
moesif.init({ applicationId: "<YOUR_MOESIF_APP_ID>" });
const userId = "demo-user-123";
moesif.identifyUser(userId, {
email: "<YOUR_EMAIL>",
firstName: "Jane",
lastName: "Doe",
});
document.getElementById("start").addEventListener("click", () => {
moesif.track("clicked_start");
document.getElementById("target").innerHTML = "clicked_start";
});
document.getElementById("api").addEventListener("click", async () => {
const response = await fetch("/api", {
headers: { Authorization: userId },
});
const json = await response.json();
document.getElementById("target").innerHTML = JSON.stringify(json, null, 2);
});
</script>
我們包含了 Moesif 瀏覽器 SDK,創(chuàng)建了兩個按鈕并將它們與兩個操作關(guān)聯(lián)起來,發(fā)送一個客戶端事件和一個 API 請求。SDK 配置了 userId,因此 Moesif 知道是誰發(fā)送了客戶端事件。不要忘記將其替換<YOUR_MOESIF_APP_ID>
為您的實際 Moesif 應(yīng)用程序 ID 和<YOUR_EMAIL>
您自己的電子郵件。
客戶端操作使用瀏覽器 SDK 來告知 Moesif 網(wǎng)站上發(fā)生的事情。在本例中,就是單擊按鈕。這與我們的 API 無關(guān),但以后可能會很有趣。例如,當用戶通過網(wǎng)站注冊,但隨后沒有發(fā)送任何請求時。
API 請求將使用 Authorization 標頭告知 API 用戶 ID。這樣,Moesif 稍后可以將客戶端事件與 API 請求關(guān)聯(lián)起來。
下一步是 API 服務(wù)器。我們將使用Express 框架
moesif-email/index.js 的代碼應(yīng)包含以下內(nèi)容:
const fs = require("fs");
const express = require("express");
const moesif = require("moesif-nodejs");
const website = fs.readFileSync(__dirname + "/index.html");
const app = express();
app.use(
moesif({
applicationId: "<YOUR_MOESIF_APP_ID>",
logBody: true,
identifyUser: ({ headers }) => headers.authorization,
})
);
app.get("/", (request, response) => response.end(website));
app.get("/api", (request, response) =>
response.end(JSON.stringify({ timestamp: Date.now() }))
);
app.listen(8888, () => console.log(Running at http://localhost:8888
));
首先,我們加載 index.html,然后創(chuàng)建一個 Express 應(yīng)用并將其配置為使用 Moesif Express SDK 作為中間件。您需要將其替換YOUR_MOESIF_APP_ID
為您的實際 Moesif 應(yīng)用 ID。
為了測試 Express API,我們必須使用以下命令啟動服務(wù)器:
$ node .
這應(yīng)該輸出以下行:
Running at http://localhost:8888
如果一切順利,我們可以http://localhost:8888
通過瀏覽器導(dǎo)航到我們的網(wǎng)站并點擊按鈕。一個將發(fā)送客戶端事件,另一個將發(fā)送 API 請求。
圖 1:實時事件日志
如果您現(xiàn)在導(dǎo)航到 Moesif 儀表板(來自此處YOUR_MOESIF_APP_ID
),然后單擊頂部的“事件”選項卡,您應(yīng)該會看到四個不同的事件,如上圖 1 所示。
用戶操作事件是客戶端事件。GET /api 事件是我們發(fā)送給 API 的請求。它們都帶有用戶名和公司注釋。另外兩個事件與加載網(wǎng)站和網(wǎng)站圖標的瀏覽器請求有關(guān)。之所以包含它們,是因為我們像 API 一樣使用相同的 Express 服務(wù)器來提供網(wǎng)站,但由于請求缺少授權(quán)標頭,因此我們無法獲得用戶或公司注釋。
圖 2:用戶摘要
如果您點擊該用戶,您會看到他們的“用戶摘要”,其中包括該用戶的電子郵件地址,如圖 2 所示。
現(xiàn)在我們創(chuàng)建了 API 并知道它可以收集數(shù)據(jù),我們可以設(shè)置行為電子郵件
發(fā)送電子郵件的第一步是創(chuàng)建一個群組,即符合特定條件的一組用戶。這些條件可以包括地理位置等人口統(tǒng)計信息,也可以包括已執(zhí)行的事件。
為此,我們需要轉(zhuǎn)到用戶查找。要轉(zhuǎn)到該頁面,請點擊頂部導(dǎo)航欄中的“用戶”鏈接,然后點擊第一個導(dǎo)航欄下方第二個導(dǎo)航欄中的“用戶查找”鏈接。
圖 3:用戶查找
您現(xiàn)在看到的視圖應(yīng)該像圖 3 中的屏幕截圖那樣。
我在屏幕截圖中已經(jīng)為我們的群組添加了一些標準。該群組中的用戶應(yīng)該有電子郵件,并且在過去 7 天內(nèi)沒有 API 調(diào)用。您可以復(fù)制該設(shè)置,點擊“創(chuàng)建群組”,并將其命名為“無 API 調(diào)用的用戶”。
通過群組定義,我們告訴 Moesif 用戶需要滿足什么標準才能獲得電子郵件,或者用戶必須做什么或不能做什么才能屬于某個群組。
如果您導(dǎo)航到“警報和治理”然后到“行為電子郵件”,您可以配置您的 SMTP 服務(wù)器并創(chuàng)建用于通知您的用戶的電子郵件模板。
圖 4:電子郵件模板創(chuàng)建
圖 4 顯示了電子郵件模板創(chuàng)建的屏幕截圖。在“發(fā)送至”下,您可以選擇您的群組。如果您選中“重復(fù)工作流程”,Moesif 將不僅發(fā)送一次電子郵件,還會在特定時間間隔內(nèi)檢查用戶是否仍然滿足條件并應(yīng)收到新電子郵件。
使用 Moesif 只需幾行代碼即可向基于 Express 的 Node.js API 和網(wǎng)站添加端到端分析。
Moesif 瀏覽器和 Node.js SDK 可讓您跟蹤從初始注冊到最后一次 API 調(diào)用的所有內(nèi)容。這樣您就可以將用戶來自的渠道與 API 的實際使用情況聯(lián)系起來,以便以后可以分析整個用戶旅程。
利用行為電子郵件,您可以使用這些信息自動通知用戶任何與 API 使用相關(guān)的信息。使用 Moesif 發(fā)送有用的電子郵件。