使用MongoDB Stitch构建REST APbet wayI

安德鲁•摩根

技术,请 ,请 缝合,请 JavaScript
Facebook分享LinkedIn共享Reddit共享Twitter分享

MongoDB Stitch的优点之一是,它通常不需要构建Rbet wayEST api来授权从前端应用程序访问数据——只需要简单地使用在任意位置缝合查询从前端代码进行Mbet wayongoDB查询。然而,在很多情况下,您需要将一些数据公开给其他不使用的应用程序针SDK—幸运的是,Stitch使得为这些场合构建RESTAPI变得非常容易。

我喜欢通过登录Swarm/Foursquare追踪我的位置,但我想从这些数据中获得一些额外的值——这意味着要将其放入MongoDB集合中。bet way

Foursquare提供了IFTTT服bet way务当您签入时触发-通过将其链接到制造商服务bet way发送HTTP职务请求,我可以将签入数据转发给Stitch。这就是缝合的地方;一个简单的针HTTP服务webhook接收bet way到职务请求并写入数据到MongoDB:bet way

exports=函数(有效负载)var query arg=有效负载.query.arg“';var主体=if(payload.body)body=ejson.parse(payload.body.text());}var owner_id=context.functions.execute(“ownerFromEmail”,body.email);var checkin=owner_id:owner_id.owner_id,电子邮件:body.email,venuename:身体.地点,日期:body.checkindate,网址:body.url,locationimg:body.location+“&key=”+context.values.get(“GoogleMapsStatickey”)返回context.functions.execute(“签入”,签入);

Webhook使用签入功能:

exports=function(checkin)var atlas=context.services.bet wayget(“mobet wayngodb atlas”);var checkincoll=atlas.db(“trackme”).collection(“checkins”);尝试{checkinColl.insertOne(登记);}catch(e)console.log(“插入签入文档时出错:”+e);返回e.message();}}(二)

注意,在配置HTTP服务时,bet way我设置了一个API密钥,请求者必须将其作为秘密查询参数:

密针网钩

ifttt foursquare小程序

现在数据在MongoDB中,bet way我能做的没有限制。例如,我想要一个仪表板来显示我的登记数据,我想包括的一件事是我最常登记的一张图表:

四方形签到图

来实现,我写了一个新的缝合功能:

exports=function(limit)var atlas=context.services.bet wayget(“mobet wayngodb atlas”);var checkincoll=atlas.db(“trackme”).collection(“checkins”);var checkins=checkincoll.aggregate([$match:owner_id:context.user.id,{$group: {_id: "$venueName",计数:$sum:1,$排序:计数:-1,$限额:限额,$project:地点:“$u id”,_id:0,计数:1]).ToArray();返回签到;};

从前端应用程序来看,然后它需要一个方法调用来检索数据:

this.props.stitchclient.executeFunction('popurcheckins',10).然后(checkindata=>this.setstate(checkins:checkindata);this.createBarChart();},请错误=>console.log(“无法获取最常用的签入:”+错误))

你可以为自己重新创建这个针和前端应用程序从GitHub下载应用程序导入到Stitch中.

创建你的第一个Stitch应用?从一个开始缝合教程.

想进一步了解MongoDB Stitch吗?bet way读了白皮书.