Files
sta/src/api/README.md
Lucien Cartier-Tilet 8e4433ceaa feat(api): generate TypeScript API client from OpenAPI specification
Create type-safe TypeScript API client automatically generated from the
OpenAPI specification. Includes generated schema types and documented client
wrapper for type-safe backend communication.

Ref: T008 (specs/001-modbus-relay-control)
2026-01-22 00:57:10 +01:00

1.4 KiB

API Client

This directory contains the auto-generated TypeScript API client for the STA backend.

Files

  • schema.ts - Auto-generated OpenAPI type definitions (do not edit manually)
  • client.ts - API client instance with type-safe methods

Regenerating the Client

To regenerate the TypeScript client after backend API changes:

  1. Start the backend server:

    cargo run
    
  2. Download the OpenAPI spec:

    curl http://localhost:3100/specs > openapi.yaml
    
  3. Generate TypeScript types:

    pnpm exec openapi-typescript openapi.yaml -o src/api/schema.ts
    

Usage Example

import { apiClient } from '@/api/client';

// GET request
const { data, error } = await apiClient.GET('/api/health');
if (error) {
  console.error('Health check failed:', error);
} else {
  console.log('Server is healthy');
}

// GET request with response data
const { data: meta, error: metaError } = await apiClient.GET('/api/meta');
if (metaError) {
  console.error('Failed to get metadata:', metaError);
} else {
  console.log('App name:', meta.name);
  console.log('App version:', meta.version);
}

Configuration

The API base URL can be configured via the VITE_API_BASE_URL environment variable. Create a .env file in the project root:

VITE_API_BASE_URL=http://localhost:3100

For production builds, set the environment variable to point to your deployed backend.