给blog加了个句子api

灵感来源

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

构思

后端

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

前端

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

具体实现

1.整理句子

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

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

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

2.部署云函数

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

1
2
3
4
5
6
7
8
9
10
11
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,具体代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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();
}
# blog

Hello world!

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×