2016-05-18 50 views
3

我有一些用js和express编写的web服务。我想使用基于API的服务。 假设我目前有一个Web服务“getRooms”。基于api密钥的节点JS web服务

app.get('/getRooms/', function (req, res) { 
    'use strict'; 
    N.API.getRooms(function (rooms) { 
     res.send(rooms); 
    },function (err) { 
     res.send(err); 
    }); 
}); 

我通过调用https://xxxxxx/getRooms来使用它。 现在我想使用https://xxxxxx/APIKEY/getRooms。这个APIKEY对于不同的客户是不同的。那么如何修改我的Web服务来实现这一目标呢?请帮忙。我在节点JS中是新的

回答

4

您可以将其修改为/APIKEY/getrooms以获得所需的结果。然而,它会更好,你发送APIKEY在请求头,但显然这取决于你的情况。

+0

可以请你解释一下什么是在/ XXXXX路线。所以我可以发帖 – Bobby

+0

我已经编辑了答案检查。您只需将APIKEY放在/ getrooms/ –

+0

之前,api键就会有所不同,它们是来自mongodb的_id。那么我该如何定义APIKEY静态 – Bobby

0

你可以修改你这样的代码

app.get('/getRooms?api_key=xxxx', function (req, res) { 
    console.log(req.query.api_key) // print xxxx when user request to https://xxxxxx/getRooms/APIKEY 
}); 
+0

我想过这个程序,但如果我已经有一个该Web服务的参数?像 app.get('/ getRoom /:room',function(req,res){}) – Bobby

+0

因此您需要在头文件中设置用户发送带有api_key的请求。然后在服务器端,你可以通过req.headers ['api_key']获得用户API密钥 – KibGzr

+0

当从代码中调用时,放入头文件是一种很好的方法。对于GET服务,如果我们在U​​RL中找到它,那么标题部分将不起作用。 – Bobby