webscript.io 轻量简单的 API 部署方式~ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
loddit
V2EX    分享发现

webscript.io 轻量简单的 API 部署方式~

  •  2
     
  •   loddit 2015-05-26 00:37:24 +08:00 3961 次点击
    这是一个创建于 3792 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近几年随着前端技术发展迅猛,单页应用的增多,很多场景下后端就可以变的十分的简单,但是又不可或缺。另外一方面,很多在线工具提供了更好的 API, Webhooks 可以实现更好的功能,但是就是需要做一些小小的适配。

    这个时候我想找到一个云端的在线 API 服务,可以快速把代码部署上,并暴露一个 url 可以直接使用,功能简单点无所谓。 首先让我惊喜的是 Parse / LeanCloud 它们提供的 cloud code 基本能满足我的需求,但是有个最大的问题是暴露出来 API 需要 token 才能访问,除非你自己再做一个 proxy ,不然无法公开使用。 后来看了看 Google amazon 类似的服务更是要装 SDK 感觉很麻烦的样子。

    后来我找到的 webscript.io,你可以直接在上面编写 lua 脚本(为什不是 js 不能同步执行吗? T-T),只要点击保存,你的脚本就部署上线了,真的很方便。 代码也是很简单函数风格,前面可以做很多事(比如处理参数,渲染模板,再调用外部API 等等),最后 return 的结果就是 API 返回值。

    还支持简单的存储,什么在线表单的直接往里面丢就好啦,也可用来做更复杂的逻辑。

    我用 webscript.io 其实主要想做一些聊天室机器人,下图是我做的一个地图机器人,代码里首先解析出要搜索的位置,然后利用 google maps 的 API 拼出一个 staticmap 的图片地址,把地址放进一个规定好的结构并返回。
    示例的代码在 这里

    map robot

    只要我输入 /map boston ,系统匹配了关键词(/map),会自动去调用我部署在 webscript.io 的脚本,勤劳的机器人就会自动把图奉上。

    map robot

    类似的这里还有一个 汇率机器人,现在还不支持任意种类货币的兑换有时间我去完善它。

    官方还提供了很多例子,文档也写的不错,自己去看看吧
    https://www.webscript.io/examples/

    第 1 条附言    2015-05-26 12:23:14 +08:00
    更新 [汇率机器人](https://github.com/bearyinnovative/ollivanders/tree/master/outgoing/currency) 已经可以支持任意货币了(之前只支持外币兑换人民币)。
    8 条回复    2015-05-27 23:50:45 +08:00
    loddit
        1
    loddit  
    OP
       2015-05-26 01:00:34 +08:00
    刚刚编写了一个GET请求版的汇率 API 大家可以改参数自己试试 http://loddit.webscript.io/currency2?from=USD&to=CNY&amount=100
    rlog
        2
    rlog  
       2015-05-26 12:40:50 +08:00
    好棒,可为什么是lua ...
    loddit
        3
    loddit  
    OP
       2015-05-26 13:31:39 +08:00
    @rlog 赶紧开发一个 js 版的怎么样?有前途啊
    hjiang
        4
    hjiang  
       2015-05-26 21:37:48 +08:00
    LeanCloud 云代码不需要暴露什么 token 啊 .... 其实是一样的。
    loddit
        5
    loddit  
    OP
       2015-05-26 23:15:04 +08:00
    @hjiang 我说的不准确,是需要在 HTTP head 里增加 X-AVOSCloud-Application 的 Id / Key,这个限制有办法取消吗?
    loddit
        6
    loddit  
    OP
       2015-05-26 23:16:50 +08:00
    @hjiang 就是单单通过 url 来调用我的云代码
    hjiang
        7
    hjiang  
       2015-05-27 23:32:29 +08:00
    @loddit 调用你的云代码不需要加 Id/Key 啊。可能是有一点混淆,云代码可以定义让客户端 SDK 调用的自定义函数/API,这个是需要客户端传 ID/Key的。但是你用云代码也可以实现一个完整的 Express 网站,也包括传统的 RESTful API 或者通过 GET/POST 一个 URL 实现特定功能,这些都是不需要客户端传任何 Id/Key/Token 的。
    loddit
        8
    loddit  
    OP
       2015-05-27 23:50:45 +08:00
    @hjiang 懂了,我原来是把 “云代码函数” 理解成 “云代码” 了,原来 Express 这种也是云代码的一部分, 现在叫 LeanEngine 了,对吧? 所以其实我希望的是 “云代码函数” 也可以支持外部不用 ID/key 调用。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2847 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 13:56 PVG 21:56 LAX 06:56 JFK 09:56
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86