用MongoDB针脚构建REST API亚博贵宾会贴吧

安德鲁摩根

#技术的 #云 #缝 #javascript.

关于MongoDB针的伟大事物之一是它经常删除建立REST 亚博贵宾会贴吧API的需要,以便从前端应用授予对数据的访问 - 只需使用缝线queryanywhere从前端代码制作M亚博贵宾会贴吧ongoDB查询。但是,通常需要在其他应用程序中向其他应用程序打开一些数据的情况缝线SDK.- 幸运的是,缝线使得这些场合构建REST API非常容易。

我喜欢通过检查群体/ foursquare来跟踪我的位置,但我想从该数据中获得一些额外的价值 - 这意味着将其进入MongoDB集合。亚博贵宾会贴吧

Foursquare提供了一个IFTTT服务只要您通过链接到“即可触发即可触发制造商服务发送一个http邮政请求,我可以将签入数据转发到针脚。这是缝线进来的地方;一个简单的针迹HTTP服务Webhook接收邮政请求并将数据写入MongoDB:亚博贵宾会贴吧

导出=函数(有效载荷){var queryarg = payload.query.arg ||'';var body = {};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,denuename:body.venue,日期:body.checkindate,url:body.url,locationimg:body.location +“&key =”+ context.values.get(“googlemapsstatickey”)};返回context.functions.execute(“checkin”,checkin);};

webhook使用报到功能:

导出=函数(checkin){var atlas = context.services.get(“mongodb-atlas”亚博贵宾会贴吧);var checkincoll = atlas.db(“trackme”)。集合(“签到”);尝试{checkincoll.insertone(checkin);catch(e){console.log(“插入checkin doc错误:”+ e);返回e.message();}};

请注意,在配置HTTP服务时,我设置了请求者必须包含的API键秘密查询参数:

用秘密保护缝线webhook

ifttt foursquare applet.

既然数据在MongoDB中,我可以用它可以做的事亚博贵宾会贴吧情。例如,我想要一个仪表板进行我的登记数据,我想要包含的一件事是我最常见的办理登机手续的图形:

Foursquare ched-in grapsh

要实现这一点,我写了一个新的缝线功能:

导出=函数(限制){var atlas = context.services.get(“mongodb-atlas”);亚博贵宾会贴吧var checkincoll = atlas.db(“trackme”)。集合(“签到”);var checkins = checkincoll.aggregate([{$匹配:{owner_id:context.user.id}},{$组:{_id:{_id:{_id:{_ID:{_ID:{_ID:{_ID:},count:{$ sum:1}}},{$ sort:{count:-1}},{$ limit:limit},{$ project:{venue:'$ _id“,_id:0,count:1}})。toarray();退货签到;};

从前端应用程序,它可以采用单个方法调用来检索数据:

这个.props.stitchclient .executfunction('popularCheckins',10)。然后(checkindata => {this.setstate({checkins:checkindata}); this.createbarchartart();},错误=> {console.log(“失败要获取最受欢迎的Chee-Ins:“+错误)})

您可以为自己重新创建这个针和前端应用程序从github下载应用程序将其导入针脚

创建你的第一个针应用程序?从其中一个开始针脚教程

想了解更多有关MongoDB STITH的信息吗?亚博贵宾会贴吧阅读白皮书