ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
ဒီ project မှာ ကျွန်တော်တို့ Users API ကို ခေါ်ဆိုသုံးမယ့် user-cli ဆိုတဲ့ Node.js command-line tool လေးကို တည်ဆောက်ပါမယ်။ Auth Overview နဲ့ Bearer Token သင်ခန်းစာက Header ထဲမှာ Authorization ဘယ်လို ထည့်ရမလဲဆိုတာ၊ Endpoint Anatomy သင်ခန်းစာက Base URL နဲ့ Path ကို ဘယ်လို ခွဲခြားရမလဲဆိုတာကို အသုံးချထားပါတယ်။ Project တစ်ခုလုံးမှာ Token ကို code ထဲ hardcode မလုပ်ဘဲ config file တစ်ခုတည်းကနေ စီမံအုပ်ချုပ်အောင် ပြင်ဆင်ပါမယ်။ ဒီအပိုင်းက Foundation ဖြစ်တဲ့အတွက် သေချာစွာ ပြင်ဆင်ထားရင် Part 2 နဲ့ Part 3 မှာ အလွယ်တကူ ဆက်တည်ဆောက်နိုင်ပါလိမ့်မယ်။
လက်တွေ့ ဆောက်ကြည့်မယ်
Terminal မှာ mkdir user-cli && cd user-cli လုပ်ပြီး npm init -y နဲ့ package.json ကို ဖန်တီးပါ။ config.js file တစ်ခုဆောက်ပြီး API_BASE_URL နဲ့ API_TOKEN ကို process.env ကနေ ဖတ်အောင် သတ်မှတ်ပါ။ ပြီးရင် api.js ထဲမှာ getUsers(page, limit) ဆိုတဲ့ function ရေးပြီး Authorization: Bearer <token> header ထည့်ကာ /v1/users?page=&limit= ကို GET request လုပ်ပြီး JSON response ကို console.log ထုတ်ကြည့်ပါ။ အဲဒီ response ရဲ့ shape ကို Response Shape သင်ခန်းစာမှာ သင်ခဲ့တဲ့ { data, meta } pattern အတိုင်း စစ်ဆေးပါ။
Code နမူနာ
// config.js
require('dotenv').config();
module.exports = {
API_BASE_URL: process.env.API_BASE_URL || 'https://api.example.com/v1',
API_TOKEN: process.env.API_TOKEN, // .env ထဲမှာသာ ထားပါ
};
// api.js
const { API_BASE_URL, API_TOKEN } = require('./config');
async function getUsers(page = 1, limit = 10) {
const url = `${API_BASE_URL}/users?page=${page}&limit=${limit}`;
const res = await fetch(url, {
headers: {
Authorization: `Bearer ${API_TOKEN}`,
Accept: 'application/json',
},
});
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
return res.json();
}
getUsers(1, 5).then(console.log);Terminal ပေါ်မှာ users list ကို { data: [...], meta: { page, limit, total } } ပုံစံနဲ့ ပထမ page အနေနဲ့ JSON output ထွက်လာပါလိမ့်မယ်။၅ မိနစ် စမ်းကြည့်
5 မိနစ်အတွင်း .env file ဖန်တီးပြီး API_TOKEN=your_test_token လို့ ထည့်ကာ dotenv package ကို install လုပ်ပြီး getUsers() ကို run ကြည့်ပါ။
သတိလေးတစ်ချက်
.env file ကို .gitignore ထဲ မထည့်ဘဲ commit လုပ်မိရင် Token ပေါက်ကြားနိုင်တဲ့အတွက် project စတင်ကတည်းက .gitignore ကို ပြင်ဆင်ထားပါ။