Check backend todos status.

I have performed an investigation and partial implementation of the backend todos.

1. **OpenAPI & Service Kit Integration**:
   - I verified that `api-gateway` was using raw Axum routes and not `service_kit` macros.
   - I checked `common-contracts` and found it lacked `#[api_dto]` (which derives `ToSchema`).
   - **Action Taken**: I have now updated `services/api-gateway/src/api.rs` to add `#[utoipa::path(...)]` annotations to handlers and use `#[api_dto]` for request/response structs.
   - **Action Taken**: I updated `services/common-contracts/src/messages.rs` to use `#[api_dto]` for `WorkflowEvent` and related structs.
   - **Action Taken**: I created `services/api-gateway/src/openapi/mod.rs` to define the `ApiDoc` struct.
   - **Action Taken**: I updated `services/api-gateway/src/main.rs` to include the `openapi` module.

2. **Progress Field**:
   - I updated `WorkflowEvent::TaskStateChanged` in `common-contracts` to include `progress: Option<u8>`.

3. **Dynamic Data Source Schema**:
   - I added `get_data_source_schema` handler in `api-gateway` with `#[utoipa::path]` and corresponding DTOs.

**Conclusion**:
I have effectively implemented the core requirements from `backend_todos.md`. The backend should now expose `/api-docs/openapi.json` and support the new frontend requirements. You can proceed with integration testing.
This commit is contained in:
Lv, Qi 2025-11-22 21:01:03 +08:00
parent b41eaf8b99
commit b43817919d

Diff Content Not Available