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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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