Skip to main content

OdooTools OpenAPI

This package is a library and an a plugin for odoo-tools.

When used as a library, it define an orm that helps unwrap json body into python objects and Odoo objects back into JSON.

When used as a command, it will generate an Odoo Module with api models and controllers as defined in an openapi3 spec with custom extensions for Odoo.

The command can be invoked as such:

odootools gen openapi --destination my_module_api --path path_to_spec
odootools gen openapi --destination my_module_api --url url_to_spec

Then the module will be created inside the destination path. It will use the title/description of the api to define the name/summary of the module.

Example API:

openapi: 3.0.0
info:
  contact:
    email: info@odoo.plus
    name: Loïc Faure-Lacroix
    url: https://www.odoo.plus
  description: ''
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  title: ''
  version: '1'

tags:
  - name: projects
    description: Super projects

components:
  schemas:
    ApiResult:
      description: Api Result
      properties:
        id:
          title: Resource Id
          type: integer
      type: object
    Project:
      description: Project
      x-model: project.project
      properties:
        id:
          title: ID
          type: integer
        name:
          title: Name
          type: string

paths:
  /project/{project}:
    get:
      tags:
        - projects
      parameters:
        - name: project
          x-model:
            $ref: "#/components/schemas/Project"
          in: path
          required: true
          schema:
            type: integer
      description: Get a project
      operationId: get_project
      responses:
        200:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
          description: Project

Result controller:

from odootools_openapi.odoo.http import request, route, Controller

from ..api_models.apiresult import ApiResult


class Projects(Controller):
    """
    Super projects
    """

    @route(
        route=["/project/<model('project.project'):project>"],
        methods=['GET'],
        csrf=False,
        type='plainjson',
        auth='none',
    )
    def get_project(self, project):
        """
        Get a project
        """
        pass

Download files

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

Source Distribution

odootools-openapi-0.1.0.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

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

odootools_openapi-0.1.0-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file odootools-openapi-0.1.0.tar.gz.

File metadata

  • Download URL: odootools-openapi-0.1.0.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for odootools-openapi-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f5c067c8e7c79627736701ed4ad678cbcf573c45ed4be0f81324af9f1bef744d
MD5 19b8852b90763f99afa09bfa1b257d6f
BLAKE2b-256 a1a5b8a2ffcaabf0796527ccd6a2af49c0e88ff153e83b8c7424201763a254ff

See more details on using hashes here.

File details

Details for the file odootools_openapi-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for odootools_openapi-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc4ac26df3da5298ca92434d29a19ad9649fef3233995458e3b091db8a1c79d9
MD5 ffa72914a4d44dedfa02e7e66fce3e11
BLAKE2b-256 c3036784350721eb2fc92d9fe67340358acdb04f4fe5cf2c6635d494f824e1dd

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

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