Files
links/scripts/check-api-endpoints.sh
Andrey K. Choi fb74a4a25d
Some checks failed
continuous-integration/drone/push Build is failing
some fixes
2025-11-08 18:45:20 +09:00

95 lines
3.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 "🏁 Проверка эндпоинтов завершена!"