453 lines
9.9 KiB
Markdown
453 lines
9.9 KiB
Markdown
# 🌐 Browser API Tester - Complete Guide
|
||
|
||
## ✨ What Is This?
|
||
|
||
A **beautiful web-based tool** to test your ChitFund API endpoints directly from the browser - no Postman needed!
|
||
|
||
---
|
||
|
||
## 🚀 Quick Start
|
||
|
||
### Step 1: Access the Tester
|
||
|
||
Open your browser and go to:
|
||
|
||
```
|
||
https://chitfund.deepteklabs.com/test/api-tester.html
|
||
```
|
||
|
||
Or for local testing:
|
||
|
||
```
|
||
http://localhost:3000/test/api-tester.html
|
||
```
|
||
|
||
### Step 2: Login
|
||
|
||
1. **Enter your manager mobile number**
|
||
2. **Enter your password**
|
||
3. **Click "Login"**
|
||
|
||
You'll see:
|
||
- ✅ Success message with your name
|
||
- 🔐 Your authentication token displayed
|
||
- Token saved automatically for future use
|
||
|
||
### Step 3: Test Endpoints
|
||
|
||
Click any of the pre-configured buttons:
|
||
|
||
- **📋 Get Review Queue** - Transaction sync review queue
|
||
- **💳 Get UPI Settings** - Your UPI configuration
|
||
- **📊 Get Sync Stats** - Payment sync statistics
|
||
|
||
Or enter a custom endpoint!
|
||
|
||
---
|
||
|
||
## 📱 Screenshots
|
||
|
||
### Login Screen:
|
||
```
|
||
╔═══════════════════════════════════════╗
|
||
║ 🔧 ChitFund API Tester ║
|
||
║ Test your API endpoints ║
|
||
╠═══════════════════════════════════════╣
|
||
║ ║
|
||
║ 🔐 Step 1: Login ║
|
||
║ ───────────────────────────────── ║
|
||
║ ║
|
||
║ Mobile Number: [9876543210 ] ║
|
||
║ Password: [•••••••••• ] ║
|
||
║ ║
|
||
║ [Login] ║
|
||
║ ║
|
||
║ Auth Token: ║
|
||
║ ┌─────────────────────────────────┐ ║
|
||
║ │ eyJhbGciOiJIUzI1NiIsInR5cCI6... │ ║
|
||
║ └─────────────────────────────────┘ ║
|
||
║ [Copy Token] ║
|
||
║ ║
|
||
╚═══════════════════════════════════════╝
|
||
```
|
||
|
||
### API Testing:
|
||
```
|
||
╔═══════════════════════════════════════╗
|
||
║ 🚀 Step 2: Test API Endpoints ║
|
||
║ ───────────────────────────────── ║
|
||
║ ║
|
||
║ [📋 Get Review Queue] ║
|
||
║ [💳 Get UPI Settings] ║
|
||
║ [📊 Get Sync Stats] ║
|
||
║ ║
|
||
║ Custom Endpoint: ║
|
||
║ [/payments/phonepe/settings/upi] ║
|
||
║ [Call Custom Endpoint] ║
|
||
║ ║
|
||
║ [Clear Response] ║
|
||
╚═══════════════════════════════════════╝
|
||
```
|
||
|
||
### Response Display:
|
||
```
|
||
╔═══════════════════════════════════════╗
|
||
║ 📦 Response ║
|
||
║ ───────────────────────────────── ║
|
||
║ { ║
|
||
║ "success": true, ║
|
||
║ "data": { ║
|
||
║ "upi_id": "9876543210@ybl", ║
|
||
║ "is_configured": true, ║
|
||
║ "transaction_fee": 0, ║
|
||
║ "transaction_fee_percentage": "0%"║
|
||
║ } ║
|
||
║ } ║
|
||
╚═══════════════════════════════════════╝
|
||
```
|
||
|
||
---
|
||
|
||
## 🎨 Features
|
||
|
||
### 1. Automatic Token Management
|
||
- ✅ Saves token to localStorage
|
||
- ✅ Persists across page refreshes
|
||
- ✅ Automatically includes in all requests
|
||
|
||
### 2. Pre-configured Endpoints
|
||
- **Review Queue** - `/transaction-sync/review-queue`
|
||
- **UPI Settings** - `/payments/phonepe/settings/upi`
|
||
- **Sync Stats** - `/transaction-sync/stats`
|
||
|
||
### 3. Custom Endpoint Testing
|
||
- Enter any API endpoint
|
||
- Automatically adds base URL
|
||
- Uses saved authentication token
|
||
|
||
### 4. Beautiful UI
|
||
- 🎨 Modern gradient design
|
||
- 📱 Responsive layout
|
||
- 🌈 Color-coded responses
|
||
- ✨ Smooth animations
|
||
|
||
### 5. Response Formatting
|
||
- JSON syntax highlighting
|
||
- Scrollable response area
|
||
- Copy-friendly display
|
||
- Clear success/error indicators
|
||
|
||
---
|
||
|
||
## 🔧 How to Use
|
||
|
||
### Testing Review Queue
|
||
|
||
1. **Login** with manager credentials
|
||
2. **Click** "Get Review Queue"
|
||
3. **See** all transactions needing review
|
||
|
||
**Response Example:**
|
||
```json
|
||
{
|
||
"success": true,
|
||
"data": {
|
||
"pending": [
|
||
{
|
||
"id": "123",
|
||
"amount": 10250,
|
||
"payer_vpa": "user@paytm",
|
||
"timestamp": "2025-11-10T10:00:00Z"
|
||
}
|
||
],
|
||
"total": 1
|
||
}
|
||
}
|
||
```
|
||
|
||
### Testing UPI Settings
|
||
|
||
1. **Click** "Get UPI Settings"
|
||
2. **See** your UPI configuration
|
||
|
||
**Response Example:**
|
||
```json
|
||
{
|
||
"success": true,
|
||
"data": {
|
||
"upi_id": "9876543210@ybl",
|
||
"is_configured": true,
|
||
"provider": "ybl",
|
||
"transaction_fee": 0,
|
||
"transaction_fee_percentage": "0%"
|
||
}
|
||
}
|
||
```
|
||
|
||
### Testing Custom Endpoint
|
||
|
||
1. **Enter** endpoint path (e.g., `/payments/history`)
|
||
2. **Click** "Call Custom Endpoint"
|
||
3. **View** response
|
||
|
||
---
|
||
|
||
## 🛠️ Advanced Usage
|
||
|
||
### Using Browser Console
|
||
|
||
The tool also exposes these functions in console:
|
||
|
||
```javascript
|
||
// Login
|
||
login()
|
||
|
||
// Get review queue
|
||
getReviewQueue()
|
||
|
||
// Get UPI settings
|
||
getUPISettings()
|
||
|
||
// Call custom endpoint
|
||
callAPI('/your/endpoint', 'GET')
|
||
|
||
// Access saved token
|
||
console.log(window.authToken)
|
||
```
|
||
|
||
### Copy Token for Other Tools
|
||
|
||
1. **Click** "Copy Token" button
|
||
2. **Paste** in Postman/cURL/other tools
|
||
|
||
Example cURL:
|
||
```bash
|
||
curl -X GET https://chitfund.deepteklabs.com/api/transaction-sync/review-queue \
|
||
-H "Authorization: Bearer PASTE_TOKEN_HERE"
|
||
```
|
||
|
||
---
|
||
|
||
## 📋 Pre-configured Endpoints
|
||
|
||
| Button | Endpoint | Description |
|
||
|--------|----------|-------------|
|
||
| 📋 Get Review Queue | `/transaction-sync/review-queue` | Transactions needing review |
|
||
| 💳 Get UPI Settings | `/payments/phonepe/settings/upi` | Your UPI configuration |
|
||
| 📊 Get Sync Stats | `/transaction-sync/stats` | Payment sync statistics |
|
||
|
||
---
|
||
|
||
## ⚙️ Configuration
|
||
|
||
### File Location
|
||
```
|
||
backend/public/api-tester.html
|
||
```
|
||
|
||
### Access URL
|
||
```
|
||
https://chitfund.deepteklabs.com/test/api-tester.html
|
||
```
|
||
|
||
### Backend Route
|
||
```javascript
|
||
// In server.js
|
||
app.use('/test', express.static('public'));
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 Use Cases
|
||
|
||
### 1. API Development
|
||
- Test new endpoints
|
||
- Verify authentication
|
||
- Check response format
|
||
|
||
### 2. Debugging
|
||
- Reproduce issues
|
||
- Verify fixes
|
||
- Test error handling
|
||
|
||
### 3. Documentation
|
||
- Show API examples
|
||
- Demo to team
|
||
- Training new developers
|
||
|
||
### 4. Quick Testing
|
||
- No Postman needed
|
||
- No installation required
|
||
- Works on any device
|
||
|
||
---
|
||
|
||
## 🔐 Security Notes
|
||
|
||
### Token Storage
|
||
- Stored in browser localStorage
|
||
- Persists across sessions
|
||
- Clear storage to logout
|
||
|
||
### Manual Logout
|
||
To clear token:
|
||
```javascript
|
||
// In browser console
|
||
localStorage.removeItem('authToken');
|
||
location.reload();
|
||
```
|
||
|
||
Or just close and reopen the page, then login with new credentials.
|
||
|
||
---
|
||
|
||
## 🐛 Troubleshooting
|
||
|
||
### Issue: "Please login first"
|
||
|
||
**Solution:**
|
||
1. Enter mobile number and password
|
||
2. Click Login button
|
||
3. Wait for success message
|
||
|
||
### Issue: 401 Unauthorized
|
||
|
||
**Solution:**
|
||
1. Token expired - login again
|
||
2. Not a manager account - use manager credentials
|
||
3. Wrong credentials - check mobile/password
|
||
|
||
### Issue: Page not loading
|
||
|
||
**Solution:**
|
||
1. Check backend is running
|
||
2. Verify URL is correct
|
||
3. Check browser console for errors
|
||
|
||
### Issue: CORS Error
|
||
|
||
**Solution:**
|
||
Backend already configured with:
|
||
```javascript
|
||
app.use(cors({ origin: '*' }));
|
||
```
|
||
Should work. If not, restart backend.
|
||
|
||
---
|
||
|
||
## 🎨 Customization
|
||
|
||
### Add New Endpoint Button
|
||
|
||
Edit `api-tester.html`:
|
||
|
||
```html
|
||
<!-- In the button group -->
|
||
<button class="endpoint-btn" onclick="getMyNewEndpoint()">
|
||
🆕 My New Endpoint
|
||
</button>
|
||
```
|
||
|
||
```javascript
|
||
// In the script section
|
||
async function getMyNewEndpoint() {
|
||
await callAPI('/my/new/endpoint', 'GET');
|
||
}
|
||
```
|
||
|
||
### Change Colors
|
||
|
||
Edit the `<style>` section:
|
||
|
||
```css
|
||
/* Change primary color */
|
||
background: linear-gradient(135deg, #YOUR_COLOR_1 0%, #YOUR_COLOR_2 100%);
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 Status Indicators
|
||
|
||
### Success (Green)
|
||
```
|
||
✅ Success! Status: 200
|
||
```
|
||
|
||
### Error (Red)
|
||
```
|
||
❌ Error: Unauthorized (401)
|
||
```
|
||
|
||
### Info (Blue)
|
||
```
|
||
ℹ️ Calling /api/endpoint...
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 Next Steps
|
||
|
||
### Option 1: Use the Web Tester
|
||
1. Open browser
|
||
2. Go to `/test/api-tester.html`
|
||
3. Login and test!
|
||
|
||
### Option 2: Use Browser Console
|
||
1. Open DevTools (F12)
|
||
2. Use the JavaScript code examples above
|
||
3. Test APIs directly
|
||
|
||
### Option 3: Use Postman
|
||
1. Copy token from web tester
|
||
2. Import in Postman
|
||
3. Add Authorization header
|
||
|
||
---
|
||
|
||
## 💡 Pro Tips
|
||
|
||
1. **Keep Tab Open**
|
||
- Token persists while tab is open
|
||
- No need to re-login frequently
|
||
|
||
2. **Use Custom Endpoint**
|
||
- Test any endpoint quickly
|
||
- Great for development
|
||
|
||
3. **Copy Token**
|
||
- Use in other tools
|
||
- Share with team (securely!)
|
||
|
||
4. **Check Response**
|
||
- Formatted JSON
|
||
- Easy to read
|
||
- Copy for documentation
|
||
|
||
---
|
||
|
||
## 📚 Related Documentation
|
||
|
||
- **API Documentation**: `backend/API_DOCUMENTATION.md`
|
||
- **Authentication Guide**: Check auth middleware
|
||
- **Endpoint List**: See routes files
|
||
|
||
---
|
||
|
||
## 🎉 Summary
|
||
|
||
**Now you can:**
|
||
- ✅ Test APIs from browser
|
||
- ✅ No Postman needed
|
||
- ✅ Beautiful UI
|
||
- ✅ Easy authentication
|
||
- ✅ Instant results
|
||
- ✅ Works anywhere
|
||
|
||
**Access it now:**
|
||
```
|
||
https://chitfund.deepteklabs.com/test/api-tester.html
|
||
```
|
||
|
||
**Happy Testing! 🚀**
|
||
|