一言的本地搭建
可以跑起来了
还需要有更灵活的手段
docker 安装
我把服务器的6379端口关了
先有一个没有密码的redis,
docker run -it -v /mydata/hitokoto:/usr/src/app/data –network host hitokoto/api:latest
docker run -id –name redis -p 6379:6379 -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
docker run -id -v /mydata/hitokoto:/usr/src/app/data --network host hitokoto/api:latest
用docker安装redis –network 再用docker安装hitokoto
示例
https://v1.hitokoto.cn/?c=f&encode=text
看一下nginx如何反向代理
nginx代理
那么麻烦为什么要自己部署:
自 v1.5.0 您可以部署您自己的实例,这个方案十分适合访问量大,站点私密性高的需求。
请注意: 实例中存在 遥测服务,将会收集实例的性能、错误、状态状况方面的数据,您可以自由选择关闭遥测功能。
站点私密的
nginx代理完成,看如何不怎么, 怎么才能更高级的部署 用代码调用
示例
https://v1.hitokoto.cn/ (opens new window)(从7种分类中随机抽取)
https://v1.hitokoto.cn/?c=b (opens new window)(请求获得一个分类是漫画的句子)
https://v1.hitokoto.cn/?c=f&encode=text (opens new window)(请求获得一个来自网络的句子,并以纯文本格式输出)
<!-- 请注意,以下的示例包含超链接,您可能需要手动配置样式使其不变色。如果您嫌麻烦,可以移除。 -->
<p id="hitokoto"><a href="#" id="hitokoto_text">:D 获取中...</a></p>
<!-- 以下写法,选取一种即可 -->
<!-- 现代写法,推荐(不支持 IE) -->
<script>
fetch('https://v1.hitokoto.cn')
.then(response => response.json())
.then(data => {
const hitokoto = document.getElementById('hitokoto_text')
hitokoto.href = 'https://hitokoto.cn/?uuid=' + data.uuid
hitokoto.innerText = data.hitokoto
})
.catch(console.error)
</script>
<!-- 如果你配置了 axios -->
<script>
axios.get('https://v1.hitokoto.cn')
.then(({ data }) => {
const hitokoto = document.getElementById('hitokoto_text')
hitokoto.href = 'https://hitokoto.cn/?uuid=' + data.uuid
hitokoto.innerText = data.hitokoto
})
.catch(console.error)
</script>
<!-- 如果你的站点使用了 jQuery(如果是 JQ 3.x 以及更新的版本, 你得使用完整版的 JQ), 那么你可以... -->
<script>
$.ajax({
type: 'GET',
url: 'https://v1.hitokoto.cn',
dataType: 'jsonp',
jsonp: 'callback',
jsonpCallback: 'hitokoto',
success (data) {
$('#hitokoto_text').attr('href', 'https://hitokoto.cn/?uuid=' + data.uuid)
$('#hitokoto_text').text(data.hitokoto)
},
error (jqXHR, textStatus, errorThrown) {
// 错误信息处理
console.error(textStatus, errorThrown)
}
})
</script>
<!-- P.S 我们不推荐使用 jQuery Ajax。 推荐使用 fetch api 或者 axios.js-->
<!-- 老式写法,兼容性最好; 支持 IE -->
<script>
var xhr = new XMLHttpRequest();
xhr.open('get', 'https://v1.hitokoto.cn');
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
var data = JSON.parse(xhr.responseText);
var hitokoto = document.getElementById('hitokoto_text');
hitokoto.href = 'https://hitokoto.cn/?uuid=' + data.uuid
hitokoto.innerText = data.hitokoto;
}
}
xhr.send();
</script>
<!-- 新 API 方法, 十分简洁 -->
<script src="https://v1.hitokoto.cn/?encode=js&select=%23hitokoto" defer></script>
- 原文作者:gwozai
- 原文链接:https://blog.gwozai.com/post/hitokoto/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。