AI摘要:本文介绍了搭建一言API接口的教程。首先介绍了使用Docker直接部署的方法,需要预先安装好Redis,并提供了相应的Docker命令和Docker-compose文件。然后介绍了使用方法,可以直接使用IP地址和端口访问,也可以使用Nginx反代配置。最后给出了接口参数定义和接入网站的教程代码。
一.使用docker直接部署
此方案需要先预先安装好Redis,项目将直接使用本地redis。
docker run -e edis.host=127.0.0.1 -e redis.port=6379 # - e redis.password=xxx(如没设密码请删除此属性) \
-v /path/to/your/data/dir:/usr/src/app/data \ #可以改成自定义目录
-p 8000:8000 \
--network host \
hitokoto/api
docker-compose 部署
此处docker-compose文件
version: '3'
networks:
hitokoto_api:
driver: bridge
services:
hitokoto_api:
networks:
- hitokoto_api
image: hitokoto/api:release
container_name: hitokoto_api
hostname: hitokoto_api
environment:
NODE_ENV: production
# 服务配置
url: # 请修改为您想要部署的域名
api_name: sh-01-X23Hwoc # 改一个好听的标识吧
requests.hosts: "[']" # 改成你想统计的主机名列表
redis.host: redis # Redis 连接地址,如果您使用本文件提供的 Redis 的话您无需修改此项
redis.port: 6379 # Redis 连接端口
# redis.password:
# redis.database: 0
ports:
- 8000:8000
links:
- redis
restart: unless-stopped
volumes:
- ./etc/api:/usr/src/app/data
redis:
networks:
- hitokoto_api
image: redis
restart: unless-stopped
container_name: redis
hostname: redis
volumes:
- ./etc/redis.conf:/etc/redis/redis.conf # 一定要记得把 redis.conf 先放在这个位置哦
- ./data/redis:/data
command: redis-server /etc/redis/redis.conf
# ports:
# - 6379:6379 # 如果有必要请取消注释本行
二.使用方法
直接使用:x.x.x.x:8000即可。
或者使用nginx反代也可以,以下为参考nginx反代配置:
#PROXY-START/
location ^~ /
{
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
# proxy_hide_header Upgrade;
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
set $static_fileyCr0FUky 0;
if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
{
set $static_fileyCr0FUky 1;
expires 1m;
}
if ( $static_fileyCr0FUky = 0 )
{
add_header Cache-Control no-cache;
}
}
#PROXY-END/
三.接口参数定义
请参考官方文档: 一言
4.接入网站教程
请在需要处加入以下代码(自行替换里面的api链接):
1.标准版
<p id="hitokoto">
<a href="#" id="hitokoto_text">:D 获取中...</a>
</p>
<script>
fetch('https://v1.hitokoto.cn')
.then(response => response.json())
.then(data => {
const hitokoto = document.querySelector('#hitokoto_text')
hitokoto.href = `https://hitokoto.cn/?uuid=${data.uuid}` ##请替换api链接
hitokoto.innerText = data.hitokoto
})
.catch(console.error)
</script>
2.简洁版
<p id="hitokoto"> 加载中...</a>
<script>
var xhr = new XMLHttpRequest();
xhr.open('get', 'https://hitokoto.cn/?c=b');
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
var data = JSON.parse(xhr.responseText);
var hitokoto = document.getElementById('hitokoto');
var from = document.getElementById('fromfrom');
hitokoto.innerText = data.hitokoto + " —— " +data.from;
}
}
xhr.send();
</script>
教程到这里就结束了。
网站名:Corrain's blog
头像:https://file.corrain.top/webAvatar/Corrain11725253984123744.jpg
站名:Darian.MingのBlog
头像:https://blog.darian-ming.cn/static/img/avatar.jpg
链接:https://blog.darian-ming.cn/
描述:镜花水月,不过尔尔,无悔过去,不问将来
邮箱:admin@darian-ming.cn
站点链接:https://suxiaorong.top/
头像:https://weavatar.com/avatar/c7d0fd4a1acdf03bb98b5b099d1a38f8?s=96&d=mm&r=g
站点描述:世上本无事,庸人自扰之。