API заавар
Node.js SDK
Node.js дээр WeSend API-г албан ёсны @wesend/node багцаар дуудна.
SDK нь энэ API-ийн хаяг бүрийг төрөлтэй (typed) функц болгон өгнө. Нэмэлт хамааралгүй, TypeScript болон JavaScript-д ажиллах бөгөөд амжилтгүй хүсэлтийг мессеж давхар илгээхгүйгээр дахин оролдоно.
npm install @wesend/nodeNode.js 20 буюу түүнээс шинэ хувилбар шаардана. ESM (import) болон CommonJS (require) хоёуланд нь ажиллана.
Эхлэх
API түлхүүрээ WESEND_API_KEY орчны хувьсагчид хадгална. new WeSend() гэж түлхүүргүй дуудвал клиент түлхүүрийг тэндээс өөрөө уншина.
import { WeSend } from "@wesend/node"
const wesend = new WeSend(process.env.WESEND_API_KEY)
const message = await wesend.sms.send({
to: "99112233",
text: "Tanii zahialga batalgaajlaa. #1042",
})
console.log(message.id, message.status, message.balance)SDK-г зөвхөн серверээсээ ашигла. Браузер, гар утасны апп доторх кодонд орсон түлхүүрийг хэн ч уншиж, таны кредитээр илгээж чадна.
Функцууд
Функц бүр нэг хаягийг дуудаж, хариуг нь буцаана. Талбарын нэр хаягийн хуудсууд дээрхтэй яг адил (from_name, batch_id, created_at); зөвхөн SDK-ийн өөрийн тохиргоо camelCase (idempotencyKey, maxRetries) байна.
Хаяг бүрийн хуудсан дахь хүсэлтийн жишээнүүдийн Node.js таб SDK-ийн дуудлагыг харуулна.
Алдаа
Амжилтгүй хүсэлт WeSendError алдаа шиднэ. Түүний code-оор шалгана: кодууд нь «Алдаа» хуудсанд жагсаагдсан. message-ийг зөвхөн бүртгэлд ашиглана.
import { WeSend, WeSendError } from "@wesend/node"
try {
await wesend.sms.send({ to: "99112233", text: "Sain baina uu" })
} catch (error) {
if (!(error instanceof WeSendError)) throw error
if (error.code === "insufficient_credits") {
console.log(`Need ${error.required} credits, have ${error.balance}`)
} else {
console.error(error.status, error.code, error.message)
}
}verify.checkнь код зөв бол амжилттай буцна. Буруу кодinvalid_codeалдаа шидэх бөгөөд үлдсэн оролдлогоattempts_remaining-д байна.- Гурван код API-аас биш, SDK-аас өөрөөс нь гарна:
timeoutбаconnection_error(хариу ирээгүй тулstatusньnull), мөнunexpected_response(хариу WeSend API-аас ирээгүй).
Давталт ба давхар илгээхээс сэргийлэх
Мессеж давхар илгээгдэх эрсдэлгүй үед SDK амжилтгүй хүсэлтийг өөрөө дахин оролдоно: дээд тал нь 2 удаа.
Илгээх дөрвөн функц (sms.send, sms.sendBulk, email.send, email.sendBulk) үргэлж Idempotency-Key-тэй явна: SDK дуудлага бүрд түлхүүр үүсгэдэг тул түүний давталт хэзээ ч давхар илгээхгүй. Таны код өөрөө хоёр удаа ажиллах үед ч (жишээ нь дарааллын ажил дахин ажиллах) хамгаалагдахын тулд өөрийн түлхүүрээ дамжуулна.
await wesend.sms.send(
{ to: "99112233", text: "Tanii zahialga batalgaajlaa. #1042" },
{ idempotencyKey: "order-1042-confirmation" },
)- Өөрийн түлхүүртэй үед
502 provider_failed-ийг дахин оролдохгүй: тэр түлхүүрээр давтвал мөн адил алдаа буцна. Шинэ түлхүүрээр дахин илгээнэ. verify.create,verify.checkньIdempotency-Keyавдаггүй тул сүлжээний тасалдал,5xx-ийн дараа дахин оролдохгүй.
Тохиргоо
const wesend = new WeSend(process.env.WESEND_API_KEY, {
timeout: 30_000,
maxRetries: 2,
})