簡體   English   中英

Typescript - 如何使用參數創建 GET 端點?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM