3 Commits

Author SHA1 Message Date
4905c06f4b docs(http): mark http/adapters/from-openapi completed 2026-07-01 18:20:23 +00:00
ad8d7879ae Merge feat/http-from-openapi: from_openapi adapter (OpenAPI parser, reqwest forwarding, no-env-vars)
Implements FromOpenAPI in src/adapters/from_openapi.rs: OpenAPISpec/HttpServiceConfig/
HttpAuthScheme types, $ref resolution, OperationAdapter::import() producing
HandlerRegistration bundles (Internal visibility, FromOpenAPI provenance,
HTTP_<status> error codes per ADR-023). Reqwest forwarding handlers read credentials
from OperationContext.capabilities (no-env-vars ADR-014) via SharedHttpClient.
JSON/text/binary response branching, SSE subscription streaming, Bearer/ApiKey/Basic
auth injection. 98 tests pass.
2026-07-01 18:19:44 +00:00
6b30e2ac15 feat(http): implement from_openapi adapter (OpenAPI parse + reqwest forwarding handlers)
Parses OpenAPI 3.x documents into HandlerRegistration bundles with
reqwest-backed forwarding handlers that inject credentials from
OperationContext.capabilities (no-env-vars invariant, ADR-014).
Error codes are prefixed HTTP_<status> (ADR-023); ops are Internal
leaves with FromOpenAPI provenance (ADR-015/022). SSE subscriptions
are consumed via parseSSEFrames; JSON/text/binary response branching
mirrors the TS prior art.
2026-07-01 18:18:28 +00:00
3 changed files with 1542 additions and 3 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -8,4 +8,6 @@
//! `docs/architecture/crates/http/http-adapters.md` and
//! `docs/architecture/crates/http/http-mcp.md`.
// TODO: implement
pub mod from_openapi;
pub use from_openapi::{FromOpenAPI, HttpAuthScheme, HttpServiceConfig, OpenAPISpec};

View File

@@ -1,7 +1,7 @@
---
id: http/adapters/from-openapi
name: Implement from_openapi adapter (parse OpenAPI, reqwest forwarding handlers, no-env-vars injection)
status: pending
status: completed
depends_on: [http/client/shared-http-client, http/gateway/error-mapping]
scope: broad
risk: medium
@@ -239,4 +239,11 @@ protocol-level codes (`NOT_FOUND`, `FORBIDDEN`, `INVALID_INPUT`,
## Summary
> To be filled on completion
> Implemented FromOpenAPI in src/adapters/from_openapi.rs. OpenAPISpec/HttpServiceConfig/
> HttpAuthScheme types, \$ref resolution, OperationAdapter::import() producing
> HandlerRegistration bundles (Internal visibility, FromOpenAPI provenance, leaf per
> ADR-022, HTTP_<status> error codes per ADR-023). Reqwest forwarding handlers read
> credentials from OperationContext.capabilities (no-env-vars ADR-014) via SharedHttpClient.
> JSON/text/binary response branching, SSE subscription streaming via parseSSEFrames,
> Bearer/ApiKey/Basic auth injection. 98 new tests (unit + integration with in-process
> TCP echo/capturing servers). Build/clippy/test all clean. 111 total tests pass.