搭建一言api接口教程

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>

教程到这里就结束了。

评论区
头像
萌ICP备20241104号 本站支持SSL安全访问

本站已运行:

欢迎光临本站!您是第位访问者