给blog加了个句子api

灵感来源  

经常会看到一些不错的句子,每次都是扔到 Onenote 里面就完事了,最近心血来潮,就花了半个小时写了一个api

构思  

后端  

用的是腾讯云的无服务器云函数,虽然在阿里云有个闲置的服务器,但是没有备案,很久以前就看到过腾讯云的无服务器云函数,感觉不错,但是一直没机会用。

前端  

js里面用ajax更新下就完事了。

具体实现  

1.整理句子  

我把句子塞到了一个json里面,然后把这个文件上传到了腾讯云COS里,文件格式大致如下

{
	"我们可以卑微如尘土,但不可扭曲如蛆虫。": "季业",
	"如果说,有上帝的话。人类一思考,上帝就发笑,如果人类不思考,上帝连发笑都不屑于。": "严锋",
	"前进!前进!不择手段的前进!": "《三体》"
}

左边是句子,右边是来源。

2.部署云函数  

云函数使用 Python3.6 ,具体代码如下

import json
import random
import requests as rq
def main_handler(event, context):
    s = json.loads(rq.get("https://example.myqcloud.com/sentense.json").text)
    s_l = []
    for i in s:
        s_l.append(i)
    rand = random.randint(0,len(s_l)-1)
    data = {"sentense":s_l[rand],"source":s[s_l[rand]]}
    return json.dumps(data)

反正性能需求也不高,随便写了一个。

触发方式选择Api网关,然后到Api网关里设置允许跨域访问,跨域访问好像只能用在生产环境中,所以记得发布

3.前端相关  

随便写了个js,具体代码如下

function juzi(){
   var xmlhttp;
   if (window.XMLHttpRequest){
        xmlhttp=new XMLHttpRequest();
    }
    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            j = JSON.parse(xmlhttp.responseText);
            j= JSON.parse(j);
            document.getElementById("juzi").innerHTML=j.sentense;
        }
    }
    xmlhttp.open("GET","https://example.myqcloud.com/release/juzi",true);
    xmlhttp.send();
}