Skip to content

feat(tools): expose httpx_client_factory on RestApiTool and OpenAPITo…#5715

Open
darshil3011 wants to merge 2 commits into
google:mainfrom
darshil3011:feat/openapi-tool-httpx-client-factory
Open

feat(tools): expose httpx_client_factory on RestApiTool and OpenAPITo…#5715
darshil3011 wants to merge 2 commits into
google:mainfrom
darshil3011:feat/openapi-tool-httpx-client-factory

Conversation

@darshil3011
Copy link
Copy Markdown

…olset

Mirror the pattern merged for MCP in #2997 (StreamableHTTPConnectionParams. httpx_client_factory) on the OpenAPI tool surface.

Adds an optional httpx_client_factory parameter to:

  • RestApiTool.init
  • RestApiTool.from_parsed_operation
  • OpenAPIToolset.init

OpenAPIToolset forwards the factory to every generated RestApiTool the same way ssl_verify and header_provider are already forwarded. When provided, the factory's client is used to issue each API call; when None (default), the existing httpx.AsyncClient(verify=..., timeout=None) construction is preserved exactly. This unlocks httpx.AsyncClient knobs that the narrower ssl_verify parameter can't reach: proxies, HTTP/2, custom transports (e.g. request signing), and shared connection pools.

Closes #5681

Please ensure you have read the contribution guide before creating a pull request.

Link to Issue or Description of Change

1. Link to an existing issue (if applicable):

  • Closes: #issue_number
  • Related: #issue_number

2. Or, if no issue exists, describe the change:

If applicable, please follow the issue templates to provide as much detail as
possible.

Problem:
A clear and concise description of what the problem is.

Solution:
A clear and concise description of what you want to happen and why you choose
this solution.

Testing Plan

Please describe the tests that you ran to verify your changes. This is required
for all PRs that are not small documentation or typo fixes.

Unit Tests:

  • I have added or updated unit tests for my change.
  • All unit tests pass locally.

Please include a summary of passed pytest results.

Manual End-to-End (E2E) Tests:

Please provide instructions on how to manually test your changes, including any
necessary setup or configuration. Please provide logs or screenshots to help
reviewers better understand the fix.

Checklist

  • I have read the CONTRIBUTING.md document.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • I have manually tested my changes end-to-end.
  • Any dependent changes have been merged and published in downstream modules.

Additional context

Add any other context or screenshots about the feature request here.

…olset

Mirror the pattern merged for MCP in google#2997 (StreamableHTTPConnectionParams.
httpx_client_factory) on the OpenAPI tool surface.

Adds an optional httpx_client_factory parameter to:

  - RestApiTool.__init__
  - RestApiTool.from_parsed_operation
  - OpenAPIToolset.__init__

OpenAPIToolset forwards the factory to every generated RestApiTool the same
way ssl_verify and header_provider are already forwarded. When provided, the
factory's client is used to issue each API call; when None (default), the
existing httpx.AsyncClient(verify=..., timeout=None) construction is
preserved exactly. This unlocks httpx.AsyncClient knobs that the narrower
ssl_verify parameter can't reach: proxies, HTTP/2, custom transports
(e.g. request signing), and shared connection pools.

Closes google#5681
@google-cla
Copy link
Copy Markdown

google-cla Bot commented May 15, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@rohityan rohityan self-assigned this May 18, 2026
@rohityan rohityan added tools [Component] This issue is related to tools needs review [Status] The PR/issue is awaiting review from the maintainer labels May 18, 2026
@rohityan rohityan requested a review from xuanyang15 May 18, 2026 19:13
@rohityan
Copy link
Copy Markdown
Collaborator

Hi @darshil3011 , Thank you for your contribution! We appreciate you taking the time to submit this pull request. Your PR has been received by the team and is currently under review. We will provide feedback as soon as we have an update to share.

@rohityan
Copy link
Copy Markdown
Collaborator

Hi @xuanyang15 , can you please review this.

@xuanyang15 xuanyang15 self-assigned this May 18, 2026
@darshil3011
Copy link
Copy Markdown
Author

Thanks, looking forward to feedbacks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs review [Status] The PR/issue is awaiting review from the maintainer tools [Component] This issue is related to tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(openapi_tool): expose httpx_client_factory on RestApiTool / OpenAPIToolset (sister-API gap with MCP toolset)

3 participants