This commit is contained in:
95
scripts/check-api-endpoints.sh
Executable file
95
scripts/check-api-endpoints.sh
Executable 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 "🏁 Проверка эндпоинтов завершена!"
|
||||
Reference in New Issue
Block a user