Skip to main content

check-api

Audit SD.Next API route definitions and verify endpoint parameters plus request/response signatures against declared FastAPI contracts.

معلومات المصدر

المستودع
vladmandic/sdnext
آخر نشاط في المصدر
٥ يونيو ٢٠٢٦ في ٠٥:٥٤
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٧٬٣٦١
التفرعات
٥٨٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
check-api
description
Audit SD.Next API route definitions and verify endpoint parameters plus request/response signatures against declared FastAPI contracts.
argument-hint
Optionally focus on specific route prefixes or endpoint groups
# Check API Endpoints And Signatures Read modules/api/api.py, enumerate all registered endpoints, and validate that each endpoint has coherent request parameters and response signatures. ## When To Use - The user asks to audit API correctness - A change touched API routes, endpoint handlers, or API models - OpenAPI docs look wrong or clients report schema mismatches - You need a pre-PR API contract sanity pass ## Guidance - Consult `.github/instructions/core.instructions.md` for relevant core runtime and API guidance before proceeding. ## Primary File - `modules/api/api.py` This file is the route registration hub and must be treated as the source of truth for direct `add_api_route(...)` registrations. ## Secondary Files To Inspect - `modules/api/models.py` - `modules/api/endpoints.py` - `modules/api/generate.py` - `modules/api/process.py` - `modules/api/control.py` - Any module loaded via `register_api(...)` from `modules/api/*` and feature modules (caption, lora, gallery, civitai, rembg, etc.) ## Audit Goals For every endpoint, verify in this order: 1. Route validation: - Route method and path are valid and unique after subpath handling. 2. Handler validation: - Handler call signature is compatible with the route declaration. 3. Request signature validation: - Request body or query params implied by handler type hints are consistent with expected client usage. 4. Response signature validation: - Declared `response_model` is coherent with returned payload shape. 5. Auth validation: - Authentication behavior is intentional (`auth=True` default in `add_api_route`). 6. OpenAPI validation: - OpenAPI schema exposure is correct (including trailing-slash duplicate suppression). ## Procedure ### 1. Enumerate Routes In modules/api/api.py - Collect every `self.add_api_route(...)` call. - Capture: path, methods, handler symbol, response_model, tags, auth flag. - Note route groups: server, generation, processing, scripts, enumerators, functional. ### 2. Resolve Handler Definitions For each handler symbol: - Locate the callable definition. - Read its function signature and type hints. - Identify required positional args, optional args, and body model annotations. Flag issues such as: - Required parameters that cannot be supplied by FastAPI. - Mismatch between route method and handler intent (for example body expected on GET). - Ambiguous or missing type hints for public API handlers. ### 3. Validate Request Signatures - Confirm request model classes exist and are importable. - Confirm endpoint signature reflects expected request source (path/query/body). - Check optional vs required semantics for compatibility-sensitive endpoints. ### 4. Validate Response Signatures - Compare declared `response_model` to handler return shape. - Ensure list/dict wrappers match actual payload structure. - Flag obvious drift where `response_model` implies fields never returned. ### 5. Include register_api(...) Modules `Api.register()` delegates additional endpoints through module-level `register_api(...)` calls. - Inspect each delegated module for routes. - Apply the same request/response signature checks. - Include these findings in the final report, not only direct routes in api.py. ### 6. Verify Runtime Schema (Optional But Preferred) If feasible in the current environment: - Build app and inspect `app.routes` metadata. - Generate OpenAPI schema and spot-check key endpoints. - Confirm trailing-slash duplicate suppression behavior remains correct. If runtime schema checks are not feasible, include a note in the findings section stating that runtime checks were skipped, then rely on static validation. ## Reporting Format Report findings ordered by severity: 1. Breaking contract mismatches 2. Likely runtime errors 3. Schema quality or consistency issues 4. Minor style/typing improvements For each finding include: - Route path and method - File and function - Why it is a mismatch - Minimal fix recommendation If no issues are found, state that explicitly and mention residual risk (for example runtime-only behavior not executed). ## Output Expectations When this skill is used, return: - Total endpoints checked - Direct routes vs delegated `register_api(...)` routes checked - Findings list with severity and locations - Clear pass/fail summary for request and response signature consistency
عرض على GitHub