Skip to main content

Odoo Tools Rest

Project description

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

Project details


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

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.

Supported by

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