[英]Typescript - How do you create a GET endpoint with params?
我正在使用 express 並嘗試創建一個 API 端點來接受GET /dogs?breed=GOLDEN&name=rex
類的 GET 請求。
將參數傳遞到 url 的最佳方法是什么? 在測試時,我創建了兩個端點,如下所示。 都不返回成功
router.get('/dogs?breed=GOLDEN&name=rex', breedAndNameController.fetch);
router.get('/dogs?breed=:breed&name=:name', breedAndNameController.fetch);
export const fetch = async (req: any, res: any) => {
try {
console.log("success")
return res.status(200).send("success");
} catch (err) {
console.log(err)
}
}
看起來您正在使用 express.js(只是猜測)。
查詢參數不是您路線的一部分。
你現在有兩個選擇:
使用查詢字符串
使用查詢字符串參數,您的 url 看起來像這樣:
router.get('/dogs', breedAndNameController.fetch);
還有你的路線:
export const fetch = async (req: any, res: any) => {
try {
console.log(req. query);
return res.status(200).send("success");
} catch (err) {
console.log(err)
}
}
調用看起來像/dogs?breed=asdf&name=test
使用參數
使用參數你的 url 看起來像這樣:
router.get('/dogs/:breed/:name', breedAndNameController.fetch);
這使您可以像這樣訪問:
export const fetch = async (req: any, res: any) => {
try {
console.log(req.params)
return res.status(200).send("success");
} catch (err) {
console.log(err)
}
}
您的網址看起來像/dogs/tset/asdf
。
您應該將路線保留為/dogs
並在實際調用查詢時提供查詢參數
router.get('/dogs', breedAndNameController.fetch);
然后你向/dogs?breed=GOLDEN&name=rex
提出請求
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.