Gilfeather/furnace

馃摎 Add comprehensive API documentation

Open

#9 opened on Jul 16, 2025

聽(0 comments)聽(0 reactions)聽(0 assignees)Rust聽(5 forks)auto 404
documentationgood first issuehelp wanted

Repository metrics

Stars
聽(64 stars)
PR merge metrics
聽(No merged PRs in 30d)

Description

Description

Create detailed API documentation with examples and OpenAPI/Swagger specification.

Acceptance Criteria

  • Add OpenAPI 3.0 specification file (openapi.yaml)
  • Document all endpoints with request/response schemas
  • Include example requests and responses
  • Add error code documentation
  • Generate HTML documentation from spec
  • Add link to docs in README

Current API Endpoints to Document

  1. GET /healthz - Health check
  2. GET /model/info - Model information and statistics
  3. POST /predict - Inference endpoint

Updated API Specifications

Since the API now uses built-in models (ResNet18), documentation should reflect:

Model Info Response:

  • Built-in model: resnet18
  • Input shape: [1, 3, 224, 224] (150,528 elements)
  • Output shape: [1000] (ImageNet classes)
  • Backend: burn-resnet18

Predict Request:

  • Single:
  • Batch:

Error Codes:

  • 400: INPUT_VALIDATION_FAILED
  • 500: INFERENCE_FAILED
  • 503: MODEL_NOT_LOADED

Implementation Guidance

  • Use utoipa crate for Rust-native OpenAPI generation
  • Add documentation attributes to API handlers in src/api.rs
  • Include realistic ResNet18 example data (150,528 input values)
  • Consider using Swagger UI for interactive docs
  • Update examples to use built-in models instead of file paths

Estimated Difficulty

Medium - 1-2 days (updated for current API structure)

Contributor guide