0% found this document useful (0 votes)
14 views

Odoo15 - FastAPI

Uploaded by

syb
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

Odoo15 - FastAPI

Uploaded by

syb
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Enable Dark Mode!

By:Risvana AR
JUL 27,2022

How to Set Up FastAPI With Odoo 15


Technical Odoo 15

FastAPI is a high-performance, modern web framework that builds APIs with Python 3.6+ based on the python libraries. It is
extremely easy to use and extra powerful. It will automatically be validated and converted to request type. It handles common
user errors and does it in the inline code. Managing an Odoo transaction is much easier. It is easy to create an environment of
objects and also able to interact with libraries and registries. Fastapi is easier to use in Odoo. Because it builds easily and has
more performance. It commits automatically and uses the same environment for testing. They create tests themselves.
Automatic data model documentation in JSON schema and validation can be done automatically. No compromise with the
database, and frontends but easy integration are possible. It is a resource-oriented process.
FastAPI Features
Based on Open Standards
An OpenAPI is used for the creation and declaration of path operations, parameters, and body requests. The data model
documentation uses JSON Schema. This also allows using automatic code generation in different languages. This is a very
efficient way to create a beautiful and modern rest API on top of Odoo using the Fast API framework. It is a web framework
leveraging standard python type annotations and pydantic data structure.
Automatic Docs:
The Automatic docs are Interactive API documentation for exploration of the web user interfaces. This framework has
multiple options for user interfaces. It is used to test the router and endpoints. The Swagger UI uses an interactive exploration
that can test your API directly from the browser.
For swagger: http://127.0.0.1:8000/docs
OpenAPI: http://127.0.0.1.8000/redocs
Data Schema
FastAPI generates a schema, the term "schema" may additionally ask the form of some data, sort of JSON content. A schema
could be a definition and it's just an abstract description.
FastAPI with Odoo Backend
To install, create a python virtual environment, and install the dependencies in it including Odoo 15,
$ python -m venv.venv
$ .venv/bin/python3 -m pip install requirements.txt
Install FastAPI:
$ pip install fastapi

or you can try out


$ pip3 install fastapi

Also, install the uvicorn that works as a server


$ pip install uvicorn

The file created with main.py,


The OpenAPI schema powers two interactive documentation systems, and there are different alternatives used to build your
application with the FastAPI method.
Step 1: Import FastAPI
from fastapi import FastAPI

FastAPI is a python class that provides all the functionality for your API.
Step 2: Create a FastAPI “instance”
from fastapi import FastAPI
app = FastAPI()
@app.get("/endpointname")
async def function_name():
return {"message": "Write your message here"}

Here the app variable will be an "instance" of the FastAPI class. This will be the key to creating all your APIs.
This app is the same one referred to by uvicorn in the command:
$ uvicorn main:app - -reload

If you create your app like:


my_api = FastAPI()
@my_api.get("/")
async def root():
return {"message": "Hello World"}

You can run by,


$ uvicorn main:my_api --reload

Run the application server using,


$ env ODOO_RC = odoo.cfg .venv/bin/python3 -m uvicorn app_name:app

For creating an Odoo environment for the FastAPI, use the python file named filename.py, The odoo.api.environment, and
add a function to obtain the Odoo environments.
Import Odoo from odoo.api import Environment.
def odoo_env() -> Environment:
registry = odoo.registry(odoo.tools.config['db_name']).check_signaling()
with registry.manage_changes():
with registry.cursor() as cr:
yield Environment(cr, odoo.SUPERUSER_ID, {})

Check signaling() automatically done, is to refresh the registry and cache when needed.
Initialize the odoo API (read $ODOO_RC)
- odoo tools.config.parse
Load the registry
- odoo.tools.config[“db_name”])
Create a database cursor
- registry.cursor()
Create an environment
- Environment(cr, odoo.SUPERUSER_ID, {})
That’s all about the Fast API Set Up, It is a python library to create Backend web applications and REST APIs. This is
targeted toward the developers who need to efficiently and rapidly expose the Odoo database to a third-party system.

You might also like