កន្លងមកយើងបានធ្វើផ្លូវចូលទៅកាន់ឯកសារ Astro និងឯកសារ MD ដែលបណ្តាលអោយកូដនៅក្នុងឯកសារទាំងនោះដំណើរការនិងផ្តល់លទ្ធផលនៅលើ browser ។ លើសពីនេះទៀត យើងក៏អាចធ្វើផ្លូវចូលទៅកាន់ឯកសារ JavaScript (.js) ឬ TypeScript (.ts) បានដែរ ហើយកូដនៅក្នុងនោះក៏នឹងត្រូវដំណើរការនិងផ្តល់លទ្ធផលជាអ្វីផ្សេងៗដែលយើងត្រូវការ។
// src/pages/api/info.js
export async function GET({params, request}) {
return new Response(
JSON.stringify({
info: 'ព័ត៌មានពីក្បួនចុងផ្លូវ'
})
)
}
ដោយឯកសារ info.js ត្រូវបានបង្កើតឡើងនៅក្នុងថត src/pages/api/info.js ដូចនេះផ្លូវចូលទៅកាន់ឯកសារនេះគឺ /api/info ។ បើយើងសរសេរនៅលើ browser ថា http://localhost:4321/api/info យើងនឹងឃើញលទ្ធផលដែលក្បួនឈ្មោះ GET បញ្ជូនមកជាវត្ថុមានប្រភេទជា JSON និងមានរូបរាងជា {"info": “ព័ត៌មានពីក្បួនចុងផ្លូវ”} នៅលើ browser ។ ក្បួននេះត្រូវហៅជាភាសាអង់គ្លេសថា endpoint ដែលយើងអាចបកប្រែមកជាភាសាខ្មែរថា ក្បួនចុងផ្លូវ ព្រោះវាត្រូវភ្ជាប់ទៅនឹងផ្លូវណាមួយ។
ជាទូទៅ ដើម្បីអាចទទួលលទ្ធផលពីក្បួនចុងផ្លូវយកទៅប្រើការនៅកន្លែងផ្សេងទៀត គេនិយមប្រើក្បួនមានស្រាប់ឈ្មោះ fetch( ) ជាមួយនឹងផ្លូវចូលទៅកាន់ក្បួនចុងផ្លូវនោះ។
// src/pages/api/info.js
export async function GET({params, request}) {
return new Response(
JSON.stringify({
info: 'ព័ត៌មានពីក្បួនចុងផ្លូវ'
})
)
}
<!--src/pages/index.astro-->
---
const response = await fetch("http://localhost:4321/api/info")
const data = await response.json()
---
<p>ទិន្នន័យដែលក្បួនចុងផ្លូវបញ្ជូនមកគឺ៖ {data.info} </p>
នៅពេលយកទៅប្រើ ក្បួនចុងផ្លូវនឹងទទួលបានជាស្វ័យប្រវត្តិនូវសំណុំទិន្នន័យមួយហៅថា context ដែលនៅក្នុងនោះមានសំណុំទិន្នន័យ params និងសំណុំទិន្នន័យ request ។
ដូចគ្នានឹងផ្លូវចូលទៅកាន់ឯកសារផ្សេងៗទៀតដែ យើងអាចបង្កើតផ្លូវឌីណាមិកសំរាប់ក្បួនចុងផ្លូវ ដោយប្រើសញ្ញា [ ] នៅអមសងខាងឈ្មោះនៃឯកសារដែលមានក្បួនចុងផ្លូវនៅក្នុងនោះ។
<!--src/pages/index.astro-->
---
const response = await fetch("http://localhost:4321/api/3")
const data = await response.json()
---
<p>ឈ្មោះអ្នកប្រើប្រាស់គឺ៖ {data.username} </p>
// src/pages/api/[info].js
const usernames = ["សុធារឹទ្ធ", "ផល្លា", "ម៉េង", "ចំរើន"]
export async function GET({params, request}){
const id = params.info
return new Response(
JSON.stringify({
username: usernames[id]
})
)
}
នៅពេលយកក្បួនចុងផ្លូវមកប្រើសំរាប់ផ្លូវឌីណាមិកណាមួយ ប៉ារ៉ាម៉ែតនៃផ្លូវឌីណាមិកនឹងត្រូវផ្តល់អោយទៅសំណុំទិន្នន័យ params ដែលនឹងត្រូវបញ្ជូនជាបន្តទៀតទៅកាន់ក្បួនចុងផ្លូវ។ ប៉ារ៉ាម៉ែតនោះអាចត្រូវស្រង់យកមកប្រើប្រាស់នៅក្នុងក្បួនចុងផ្លូវទៅតាមសេចក្តីត្រូវការរបស់យើង។
បើសិនជាយើងប្រើរបៀប SSG សំរាប់កម្មវិធីគេហទំព័ររបស់យើង យើងចាំបាច់ត្រូវបង្កើតគ្រប់ផ្លូវទាំងអស់សំរាប់ផ្លូវឌីណាមិកណាមួយ ដោយប្រើប្រាស់ក្បួន getStaticPaths( ) ។
<!--src/pages/index.astro-->
---
const response = await fetch("http://localhost:4321/api/3")
const data = await response.json()
---
<p>ឈ្មោះអ្នកប្រើប្រាស់គឺ៖ {data.username} </p>
// src/pages/api/[info].js
const usernames = ["សុធារឹទ្ធ", "ផល្លា", "ម៉េង", "ចំរើន"]
export async function GET({params, request}){
const id = params.info
return new Response(
JSON.stringify({
username: usernames[id]
}),
{
status: 200,
headers: {
"Content-Type": "application/json"
}
}
)
}
export function getStaticPaths() {
return [
{ params: { info: "0"} },
{ params: { info: "1"} },
{ params: { info: "2"} },
{ params: { info: "3"} }
]
}