用MongoDB Stitch构建一个REST A亚博贵宾会贴吧PI

安德鲁•摩根

#技术 #云 #针 #JavaScript

MongoDB Stitch最大的优点之一是,它通常不需要构亚博贵宾会贴吧建REST api来授权访问前端应用程序中的数据——只需使用即可针QueryAnywhere从前端代码进行M亚博贵宾会贴吧ongoDB查询。但是,通常需要向不使用的其他应用程序开放一些数据针SDK幸运的是,Stitch让为这些场合构建REST api变得非常容易。

我喜欢通过检查进入群/ FourSquare那种跟踪我的位置,但我想从这些数据有些额外的价值 - 这意味着获得它变成一个MongoDB的集合。亚博贵宾会贴吧

FourSquare那种提供IFTTT服务只要你签入,它就会被触发通过链接到设备服务发送一个HTTPPOST请求,我可以转发那个签到数据给Stitch。这就是缝针的作用;一个简单的针HTTP服务webhook接收到POST请求并写入数据到MongoDB:亚博贵宾会贴吧

出口=函数(有效载荷){风险queryArg = payload.query.arg ||'';VAR体= {};如果(payload.body){体= EJSON.parse(payload.body.text());} VAR owner_id = context.functions.execute( “ownerFromEmail”,body.email);VAR签= {owner_id:owner_id.owner_id,电子邮件:body.email,venueName:body.venue,日期:body.checkinDate,网址:body.url,locationImg:body.location + “&关键=” + context.values.get( “GoogleMapsStaticKey”)};返回context.functions.execute( “签入”,签);};

网络挂接使用签入功能:

出口=函数(签){风险图谱= context.services.get( “mongodb的-图谱”);亚博贵宾会贴吧VAR checkinColl = atlas.db( “trackme”)集合( “签入”)。尝试{checkinColl.insertOne(签);}赶上(E){的console.log( “错误插入签入文档:” + e)条;返回e.message();}};

注意:在配置HTTP服务时,我设置的API密钥请求者必须包括作为秘密查询参数:

固定线迹与网络挂接秘密

IFTTT FourSquare那种小程序

既然数据是在MongoDB中,有没有什么限制,我亚博贵宾会贴吧可以用它做。例如,我要为我办理入住手续数据的仪表板,并有一两件事我想包括在我的最频繁的检查插件图:

四方签入grapsh

为了实现它,我写了一个新的针函数:

出口=函数(限制){风险图谱= context.services.get( “mongodb的-图谱”);亚博贵宾会贴吧VAR checkinColl = atlas.db( “trackme”)集合( “签入”)。VAR =签入checkinColl.aggregate([{$匹配:{owner_id:context.user.id}},{$组:{_id: “$ venueName”,计数:{$总和:1}}},{$排序:{计数:-1}},{$限制:限制},{$项目:{地点: “$ _id”,_id:0,计数:1}}])的toArray();返回签;};

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

this.props。然后(checkinData => {this)。设置状态({签到:checkinData});this.createBarChart ();}, error => {console。日志("获取最流行的签入失败:" + error)})

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

创建您的第一个针应用程序?从其中一个开始十字绣教程

想了解更多关于MongoDB的针?亚博贵宾会贴吧阅读白皮书