スキル一覧に戻る
Skrufy

api-endpoint-audit

by Skrufy

0🍴 0📅 2026年1月13日
GitHubで見るManusで実行

SKILL.md


name: api-endpoint-audit description: Audit all API endpoints to find missing mobile implementations and inconsistencies. Use before releases, when adding features, or to verify cross-platform parity. Compares Web API routes against Android and iOS implementations. allowed-tools: Read, Grep, Glob, Bash

API Endpoint Audit

Purpose

Find gaps between Web API endpoints and mobile implementations. Ensure all platforms support the same features.

Quick Audit

1. List All Web API Routes

# Find all route.ts files
find apps/web/src/app/api -name "route.ts" -exec dirname {} \; | sort

# Count endpoints
find apps/web/src/app/api -name "route.ts" | wc -l

2. List All Android API Methods

# Find ApiService methods
grep -E "@(GET|POST|PUT|DELETE|PATCH)" apps/android/**/data/ApiService.kt

# Count endpoints
grep -c "@GET\|@POST\|@PUT\|@DELETE\|@PATCH" apps/android/**/data/ApiService.kt

3. List All iOS API Methods

# Find network service methods
grep -E "func (get|post|put|delete|create|update|fetch)" apps/ios/**/Services/*.swift

# Or find URL paths
grep -E "\"[a-z-]+\"" apps/ios/**/Services/NetworkService.swift

Detailed Comparison

Generate Endpoint Lists

Web Routes:

# Extract HTTP methods from routes
for route in $(find apps/web/src/app/api -name "route.ts"); do
  endpoint=$(dirname $route | sed 's|.*api/||')
  methods=$(grep -o "export async function \(GET\|POST\|PUT\|DELETE\|PATCH\)" $route | awk '{print $4}')
  echo "$endpoint: $methods"
done

Android Endpoints:

grep -E "@(GET|POST|PUT|DELETE|PATCH)" apps/android/**/ApiService.kt | \
  sed 's/.*@\(GET\|POST\|PUT\|DELETE\|PATCH\)("\([^"]*\)").*/\2: \1/'

Compare Side by Side

Create comparison table manually or use:

echo "=== WEB ROUTES ==="
find apps/web/src/app/api -name "route.ts" -exec dirname {} \; | sed 's|.*api/||' | sort

echo ""
echo "=== ANDROID ENDPOINTS ==="
grep -oE '@(GET|POST|PUT|DELETE)\("[^"]*"\)' apps/android/**/ApiService.kt | \
  sed 's/@[A-Z]*("\([^"]*\)")/\1/' | sort

echo ""
echo "=== iOS ENDPOINTS ==="
grep -oE '"[a-z/-]+"' apps/ios/**/Services/NetworkService.swift | tr -d '"' | sort | uniq

Common Gaps to Check

Missing Endpoints by Feature

FeatureWeb RouteAndroidiOS
Projects/api/projects✓ Check✓ Check
Daily Logs/api/daily-logs✓ Check✓ Check
Time Entries/api/time-entries✓ Check✓ Check
Inspections/api/inspections✓ Check✓ Check
Reports/api/reports✓ Check✓ Check
Analytics/api/analytics✓ Check✓ Check

Check Specific Endpoint

# Does Android have this endpoint?
grep "projects" apps/android/**/ApiService.kt

# Does iOS have this endpoint?
grep "projects" apps/ios/**/Services/*.swift

Response Format Audit

Check Response Structure Matches

For each endpoint, verify response structure:

# 1. Check Web API response shape
grep -A 30 "return NextResponse.json" apps/web/src/app/api/[endpoint]/route.ts

# 2. Check Android model
grep -A 20 "data class [Response]" apps/android/**/model/*.kt

# 3. Check iOS model
grep -A 20 "struct [Response]" apps/ios/**/Models/*.swift

Common Response Issues

IssueHow to Find
Missing wrapperAPI returns [...], mobile expects { items: [...] }
Wrong field nameAPI uses cert_name, mobile expects certName
Missing fieldAPI doesn't return field mobile requires
Extra nestingAPI returns { _count: { items: 5 } }, mobile expects { itemCount: 5 }

Feature Parity Check

List Features by Platform

# Web features (by route groups)
ls -la apps/web/src/app/api/

# Android screens
ls -la apps/android/**/ui/screens/

# iOS views
ls -la apps/ios/**/Views/

Cross-Reference Features

FeatureWebAndroidiOSNotes
Dashboard
Projects
Daily Logs
Time Tracking
Safety
Reports?Check iOS
Analytics?Check iOS
Admin?Check iOS

Audit Checklist

Before release, verify:

Endpoint Coverage

  • All Web routes have Android implementation
  • All Web routes have iOS implementation
  • No orphaned mobile endpoints (calling non-existent routes)

Response Consistency

  • All responses use camelCase field names
  • List endpoints return wrapped objects { items, total, page, pageSize }
  • All required fields present in responses
  • Date fields serialized as ISO strings
  • Nested _count objects flattened

Error Handling

  • All endpoints return consistent error format { error: string }
  • HTTP status codes are appropriate
  • Auth errors return 401
  • Validation errors return 400

Authentication

  • All protected routes check auth
  • Token refresh handled on mobile
  • Proper error on expired tokens

Automated Checks

Find Unimplemented Android Endpoints

# Get web routes
WEB_ROUTES=$(find apps/web/src/app/api -name "route.ts" -exec dirname {} \; | sed 's|.*api/||' | sort)

# For each, check if Android has it
for route in $WEB_ROUTES; do
  if ! grep -q "$route" apps/android/**/ApiService.kt 2>/dev/null; then
    echo "Missing in Android: $route"
  fi
done

Find Response Shape Mismatches

# Look for raw array returns (potential issues)
grep -rn "NextResponse.json(\[" apps/web/src/app/api/
grep -rn "NextResponse.json(result)" apps/web/src/app/api/

Quick Reference

TaskCommand
Count web routesfind apps/web/src/app/api -name "route.ts" | wc -l
Count Android endpointsgrep -c "@GET|@POST" apps/android/**/ApiService.kt
Find missing implementationsCompare route lists manually
Check response shapegrep -A 20 "NextResponse.json" [route.ts]
Find array returnsgrep "NextResponse.json(\[" apps/web/src/app/api/**/*.ts

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です