Odoo Community Association

External System HTTP

Beta License: AGPL-3 OCA/server-backend Translate me on Weblate Try me on Runboat

This module provides an HTTP(S) adapter for the base_external_system framework.

It allows Odoo to communicate with external systems over HTTP using a consistent adapter interface, supporting GET, POST and PUT requests, endpoint resolution, and connection testing.

The adapter itself acts as the client and is yielded via the standard system.client() context manager.

Table of contents

Usage

Create an external system record and optionally define endpoints.

Example configuration:

  • Host: api.example.com
  • Remote path: /v1

Define endpoints such as:

  • status → /status
  • items → /items

Use the adapter:

with system.client() as client:
    response = client.get(endpoint="status")
    response = client.post(endpoint="items", json={"name": "Item"})
    response = client.put(endpoint="items", json={"active": True})

Responses are returned as requests.Response objects.

Errors raise ValidationError with detailed messages.

Known issues / Roadmap

  • Optional authentication helpers
  • Optional persistent session support

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Therp BV

Contributors

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainers:

NL66278 ntsirintanis

This module is part of the OCA/server-backend project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.