在下面的代码中,我的快递服务器处理来自天气应用程序的get请求。页面最初加载以获取位置时调用函数。但是,我正在使用的API,地理位置'使用发布请求来获取位置数据。
对于我来说,在我这样的获取路线中发布帖子请求是不是有意义的?
router.get('/', function(req,res ){
axios.post(`https://www.googleapis.com/geolocation/v1/geolocate?key=${googleGeo}`, {
considerIp: "true",
})
.then((data) => {
return {'lat': data.data.location.lat, 'lng':data.data.location.lng }
})
.catch(error => {
console.log(error)
})
});
答案 0 :(得分:0)
只要您的客户端的API在呈现其资源的方式上是REST的,就应该如何在后端获取/存储/管理这些数据,至少就REST而言。
也就是说,不要忘记发送回复(例如res.json({lat:..., lng:...})
)而不是从.then()
处理程序返回,并发送错误状态代码(例如res.sendStatus(500)
)你的.catch()
处理程序。
答案 1 :(得分:0)
我不会挂在post
这个词上,特别是当你使用别人的API时。重要的是,当有人提出GET
请求时,不应该改变状态。在您的情况下,API可能使用POST
方法,因此您无需将请求对象粘贴到查询字符串中,也可能由于GET
请求的大小限制。它只是获取地理数据 - 而不是改变状态。
如果它改变状态,则应该是POST
,PUT
或DELETE
。如果它真的是只读的,GET
总是合适的,无论你在底层调用哪些API。