Monday, 8 May 2017

Write web services using Odoo controllers

In Odoo you can write web-services for outside world. Let's discuss how it can be done using controllers.

Suppose I need cross domain API which will return data in json format. For that we have to enable CORS and have to setup nginx reverse proxy.

Example: API to send teachers data from odoo:

# -*- coding: utf-8 -*-
from import _
from odoo import http
from odoo.http import request
import json
import sys

class odoo_public_data(http.Controller):
    @http.route('/get/teachers', type='http', methods=['GET'], auth="public")

    def get_teachers(self, **kwargs):
        teacher_model = request.env['dps.teacher']
        teacher_ids = teacher_model.sudo().search([])
        teacher_list = {'status': 1, 'data': []}
            if teacher_ids:
                for teacher in teacher_ids:
                    vals = {
            return json.dumps(teacher_list)
        except Exception as e:
            print str(e)
            return json.dumps({'status': 0, 'data': 'Some problem with API'})

Please set reverse proxy using tutorial if it's not already set. After that add lines from link( in location block, to enable CORS, of virtual host config file.

Thanks!!!!! Enjoy Programming!!! :)

No comments:

Post a Comment

Thanks for your valuable comments.

Odoo 10: Close wizard and open standard form

Hi, Today we are going to learn how to open standard form after saving data in wizard. Let's say I have created an wizard to fill bas...