要在URL中传递单个参数,请在Postman中使用以下内容:
http://localhost:3000/api/prices/:shopId
那行得通!
现在,我要做的是将shopId替换为 shopId列表。
对如何实现此目标有任何想法吗?
伪代码:
URL for shopId = 1: http://localhost:3000/api/prices/1
URL for shopId = 2: http://localhost:3000/api/prices/2
我应该怎么做才能在单个API响应中同时获取shopId 1和2?
答案 0 :(得分:2)
您最好的选择是传递数组中的元素,这些元素用一个不会出现在任何单词(例如,逗号)中的字符分隔。
以以下代码段为例:
app.get('api/prices/:ids', function(req, res){
var ids = req.params.ids.split(',');
console.log(ids); //['shopId1', 'shopdId2']
})
通过GET请求到达的端点:
http://localhost:3000/api/prices/shopId1,shopId2
答案 1 :(得分:1)
根据您的要求,我可以考虑几种替代方法,我认为这些替代方法比您提到的要好。
使用POST
或PUT
中的任何一个将其发送到正文中。
URL: http://localhost:3000/api/prices/shopIds
Body: { shopIds: [1, 2, 3, 4] }
您可以检索ID,例如
const { shopIds } = req.body // shopIds = [1, 2, 3, 4]
或
const shopIds = req.body.shopIds // shopIds = [1, 2, 3, 4]
如果要使用GET
,请使用查询参数
URL: POST http://localhost:3000/api/prices/shopIds?ids=1,2,3,4
您可以在此处将ID检索为字符串,然后将其转换为数组,
const ids = req.query.ids.split(','); // ids = [1 ,2, 3, 4]
如果您仍想按您提到的方式使用它,那么它已经被回答。使用该方法!
希望这会有所帮助!