some fixes
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2025-11-08 18:45:20 +09:00
parent 20014d3a81
commit fb74a4a25d
9 changed files with 538 additions and 2 deletions

95
scripts/check-api-endpoints.sh Executable file
View File

@@ -0,0 +1,95 @@
#!/bin/bash
# scripts/check-api-endpoints.sh - Проверка всех API эндпоинтов
set -e
echo "🌐 Проверка API эндпоинтов..."
echo "============================="
# Функция для тестирования эндпоинта
test_endpoint() {
local url="$1"
local expected_codes="$2"
local description="$3"
echo -n "🔗 $description: "
local response_code
response_code=$(curl -s -o /dev/null -w "%{http_code}" "$url" 2>/dev/null || echo "000")
if echo "$expected_codes" | grep -q "$response_code"; then
echo "✅ ($response_code)"
return 0
else
echo "❌ ($response_code)"
return 1
fi
}
echo ""
echo "📡 1. Прямые подключения к контейнерам:"
# Backend endpoints
test_endpoint "http://localhost:8000/admin/" "200 302" "Django Admin"
test_endpoint "http://localhost:8000/api/" "200 404" "Django API Root"
test_endpoint "http://localhost:8000/api/auth/register/" "405" "Register API"
test_endpoint "http://localhost:8000/static/" "404" "Static Files"
# Frontend endpoint
test_endpoint "http://localhost:3000/" "200" "Frontend Home"
echo ""
echo "📡 2. Через nginx (внешние подключения):"
# Through nginx
test_endpoint "http://localhost/admin/" "200 302" "Admin через nginx"
test_endpoint "http://localhost/api/" "200 404" "API через nginx"
test_endpoint "http://localhost/" "200" "Frontend через nginx"
echo ""
echo "📡 3. HTTPS эндпоинты (если SSL настроен):"
# HTTPS endpoints
test_endpoint "https://localhost/admin/" "200 302" "Admin HTTPS" || true
test_endpoint "https://localhost/api/" "200 404" "API HTTPS" || true
test_endpoint "https://localhost/" "200" "Frontend HTTPS" || true
# С доменным именем
test_endpoint "https://links.shareon.kr/admin/" "200 302" "Admin на домене" || true
test_endpoint "https://links.shareon.kr/api/" "200 404" "API на домене" || true
test_endpoint "https://links.shareon.kr/" "200" "Frontend на домене" || true
echo ""
echo "📡 4. Детальная проверка API:"
echo -n "🔗 API Schema (Swagger): "
swagger_code=$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:8000/api/schema/" 2>/dev/null || echo "000")
if [ "$swagger_code" = "200" ]; then
echo "✅ ($swagger_code)"
else
echo "❌ ($swagger_code)"
fi
echo -n "🔗 API Documentation: "
docs_code=$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:8000/api/docs/" 2>/dev/null || echo "000")
if [ "$docs_code" = "200" ]; then
echo "✅ ($docs_code)"
else
echo "❌ ($docs_code)"
fi
echo ""
echo "📡 5. Проверка специфических API эндпоинтов:"
# Проверяем конкретные API endpoints
echo -n "🔗 Auth endpoints: "
if curl -s -X POST -H "Content-Type: application/json" \
-d '{"username":"test","password":"test","email":"test@test.com"}' \
http://localhost:8000/api/auth/register/ 2>/dev/null | grep -q -E "(error|success|created|username|email)" 2>/dev/null; then
echo "✅ (отвечает)"
else
echo "❌ (не отвечает)"
fi
echo ""
echo "🏁 Проверка эндпоинтов завершена!"