84 lines
2.0 KiB
JavaScript
84 lines
2.0 KiB
JavaScript
/**
|
|
* API Test Functions
|
|
*
|
|
* These functions call the Worker API routes and display the results.
|
|
* Notice how API routes work seamlessly with static assets thanks to
|
|
* the "run_worker_first" configuration in wrangler.jsonc
|
|
*/
|
|
|
|
const output = document.getElementById('output')
|
|
|
|
function displayResult(data, status = 200) {
|
|
const formatted = JSON.stringify(data, null, 2)
|
|
output.textContent = `Status: ${status}\n\n${formatted}`
|
|
output.style.borderLeft = status === 200 ? '4px solid #4caf50' : '4px solid #f44336'
|
|
}
|
|
|
|
function displayError(error) {
|
|
output.textContent = `Error: ${error.message}\n\nCheck console for details.`
|
|
output.style.borderLeft = '4px solid #f44336'
|
|
console.error('API Error:', error)
|
|
}
|
|
|
|
async function testHello() {
|
|
try {
|
|
const response = await fetch('/api/hello')
|
|
const data = await response.json()
|
|
displayResult(data, response.status)
|
|
} catch (error) {
|
|
displayError(error)
|
|
}
|
|
}
|
|
|
|
async function testData() {
|
|
try {
|
|
const response = await fetch('/api/data')
|
|
const data = await response.json()
|
|
displayResult(data, response.status)
|
|
} catch (error) {
|
|
displayError(error)
|
|
}
|
|
}
|
|
|
|
async function testEcho() {
|
|
try {
|
|
const payload = {
|
|
test: 'data',
|
|
timestamp: new Date().toISOString(),
|
|
random: Math.random(),
|
|
}
|
|
|
|
const response = await fetch('/api/echo', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
body: JSON.stringify(payload),
|
|
})
|
|
|
|
const data = await response.json()
|
|
displayResult(data, response.status)
|
|
} catch (error) {
|
|
displayError(error)
|
|
}
|
|
}
|
|
|
|
async function testHealth() {
|
|
try {
|
|
const response = await fetch('/api/health')
|
|
const data = await response.json()
|
|
displayResult(data, response.status)
|
|
} catch (error) {
|
|
displayError(error)
|
|
}
|
|
}
|
|
|
|
// Display welcome message on load
|
|
window.addEventListener('DOMContentLoaded', () => {
|
|
displayResult({
|
|
message: 'Welcome! Click a button above to test the API.',
|
|
info: 'All API routes are handled by the Cloudflare Worker',
|
|
static_assets: 'This HTML/CSS/JS is served from public/ directory',
|
|
})
|
|
})
|