在get route unRESTful中发布帖子请求?

时间:2017-09-01 22:12:07

标签: javascript express restful-authentication

在下面的代码中,我的快递服务器处理来自天气应用程序的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)
  })
});

2 个答案:

答案 0 :(得分:0)

只要您的客户端的API在呈现其资源的方式上是REST的,就应该如何在后端获取/存储/管理这些数据,至少就REST而言。

也就是说,不要忘记发送回复(例如res.json({lat:..., lng:...}))而不是从.then()处理程序返回,并发送错误状态代码(例如res.sendStatus(500))你的.catch()处理程序。

答案 1 :(得分:0)

我不会挂在post这个词上,特别是当你使用别人的API时。重要的是,当有人提出GET请求时,不应该改变状态。在您的情况下,API可能使用POST方法,因此您无需将请求对象粘贴到查询字符串中,也可能由于GET请求的大小限制。它只是获取地理数据 - 而不是改变状态。

如果它改变状态,则应该是POSTPUTDELETE。如果它真的是只读的,GET总是合适的,无论你在底层调用哪些API。