Skip to main content

Tools to manage external api connections.

Project description

Beta License: AGPL-3 sygel-technology/sy-server-backend

This module provides tools for other modules to use the requests library for making external API calls.

With this module, you can:

  • Create an external API record and configure its URL and authentication_method parameters

  • Log every API call

  • Make asynchronous calls

Table of contents

Usage

To use this module, you need to create a new module with:

  1. A data file that creates an External API Config with an external ID.

  2. A python file with code that gets the External API Config and uses it to make an external call with the call() or queued_call() methods.

Some use cases of this module would be sending every new res partner record to, or sending every update in the price of the products, to a remote API.

The code of the first example would look like this:

<odoo noupdate="1">

    <record id="your_external_api_external_id" model="external.api.config">
        <field name="name">Your API Name</field>
        <field name="base_url">https://www.test.com</field>
    </record>

</odoo>
class ResPartner(models.Model):

    _inherit = "res.partner"

    def create(self, vals):
        recs = super().write(vals)
        if SYNCED_FIELDS.intersection(vals):
            for rec in recs:
                partner_json = rec.json()  # Custom function to complete
                self.env.ref(
                    'your_module.your_external_api_external_id'
                ).queued_call(
                    method="post",
                    url="/partner/create",
                    data=partner_json
                )
        return res

Known issues / Roadmap

  • Unit tests of the connection and authorization should be added

  • The _update_log() function should be removed, and the log should be created with all the values.

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

  • Sygel

Contributors

  • Sygel:

    • Alberto Martínez

    • Valentin Vinagre

    • Harald Panten

Maintainers

This module is part of the sygel-technology/sy-server-backend project on GitHub.

You are welcome to contribute.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file odoo_addon_base_external_api-17.0.1.0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for odoo_addon_base_external_api-17.0.1.0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ab78f6191d1a02893258e0405a61264f168b4d7d7693ade7ae97135430a539c0
MD5 c114fa6a01af74426691b7f5def22212
BLAKE2b-256 a732f5a5354163b3ef906741757ca6aacbe45f3bf26240c3bc60f864248cecb8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page