#!/bin/bash # 测试不同的 Artalk API 端点 echo "" echo "===================================" echo " 测试 Artalk API 端点" echo "===================================" echo "" # 从 .env 读取配置 ARTALK_SERVER=$(grep "^ARTALK_SERVER=" .env | cut -d'=' -f2) ARTALK_SITE=$(grep "^ARTALK_SITE=" .env | cut -d'=' -f2) ARTALK_ADMIN_EMAIL=$(grep "^ARTALK_ADMIN_EMAIL=" .env | cut -d'=' -f2) ARTALK_ADMIN_PASSWORD=$(grep "^ARTALK_ADMIN_PASSWORD=" .env | cut -d'=' -f2) echo "服务器: $ARTALK_SERVER" echo "站点: $ARTALK_SITE" echo "" # 1. 登录获取 token echo "1. 登录获取 token..." LOGIN_RESPONSE=$(curl -s -X POST "$ARTALK_SERVER/api/v2/auth/email/login" \ -H "Content-Type: application/json" \ -d "{\"email\":\"$ARTALK_ADMIN_EMAIL\",\"password\":\"$ARTALK_ADMIN_PASSWORD\"}") TOKEN=$(echo "$LOGIN_RESPONSE" | grep -o '"token":"[^"]*"' | cut -d'"' -f4) if [ -z "$TOKEN" ]; then echo "✗ 登录失败" echo "响应: $LOGIN_RESPONSE" exit 1 fi echo "✓ 登录成功,获取到 token" echo "" # 2. 测试不同的 API 端点 echo "2. 测试 API 端点..." echo "" # 端点列表 ENDPOINTS=( "/api/v2/pages?site_name=$ARTALK_SITE&limit=100" "/api/v2/admin/pages?site_name=$ARTALK_SITE&limit=100" "/api/v2/comments?site_name=$ARTALK_SITE&page_key=/&limit=5" "/api/v2/comments?site_name=$ARTALK_SITE&limit=5" ) for endpoint in "${ENDPOINTS[@]}"; do echo "测试: $endpoint" RESPONSE=$(curl -s -w "\n%{http_code}" "$ARTALK_SERVER$endpoint" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN") HTTP_CODE=$(echo "$RESPONSE" | tail -1) BODY=$(echo "$RESPONSE" | sed '$d') if [ "$HTTP_CODE" = "200" ]; then echo "✓ 成功 ($HTTP_CODE)" echo " 响应: $BODY" | head -c 100 echo "" break else echo "✗ 失败 ($HTTP_CODE)" echo " 响应: $BODY" | head -c 100 echo "" fi echo "" done echo "" echo "===================================" echo " 测试完成" echo "===================================" echo ""