A adoção de APIs RESTful tornou-se um padrão na indústria, fornecendo um meio eficiente de comunicação entre diferentes partes de um sistema de software ou entre sistemas diferentes. Neste artigo, exploraremos como usar o Oracle REST Data Services (ORDS) para criar APIs RESTful a partir de um banco de dados Oracle.

Configurando ORDS

O primeiro passo é instalar e configurar o ORDS. Uma vez instalado, você precisará configurá-lo para se conectar ao seu banco de dados Oracle. Isso geralmente envolve a criação de um arquivo de configuração que especifica detalhes como o nome do host, porta, nome do banco de dados, nome de usuário e senha.

Criando Endpoints RESTful

Com o ORDS configurado, você pode começar a definir seus endpoints RESTful. No exemplo abaixo, criamos um serviço REST para a tabela “employees”:

BEGIN
    ORDS.ENABLE_OBJECT (
        p_enabled             => TRUE,
        p_schema              => 'HR',
        p_object              => 'EMPLOYEES',
        p_object_type         => 'TABLE',
        p_object_alias        => 'employees',
        p_auto_rest_auth      => TRUE
    );
END;

Em seguida, definimos uma manipulação GET para buscar dados do serviço. O exemplo abaixo cria uma manipulação GET que recupera todos os registros de “employees”:

BEGIN
    ORDS.DEFINE_HANDLER (
        p_module_name    => 'employees',
        p_pattern        => 'employees',
        p_method         => 'GET',
        p_source_type    => 'json/query',
        p_source         => 'SELECT * FROM employees'
    );
    COMMIT; 
END;

Testando o Endpoint RESTful

O endpoint RESTful pode ser testado usando uma ferramenta como o Postman ou cURL. A URL para o serviço “employees” seria algo como isto: http://localhost:8080/ords/hr/employees/employees.

O resultado da chamada GET seria um JSON com os dados recuperados da tabela “employees”. Aqui está um exemplo de como o output poderia se parecer:

{
    "items": [
        {
            "employee_id": 1,
            "first_name": "John",
            "last_name": "Doe",
            "email": "john.doe@example.com",
            "phone_number": "1234567890",
            "hire_date": "2023-01-01",
            "job_id": "IT_PROG",
            "salary": 6000,
            "manager_id": 101,
            "department_id": 60
        },
        // ...
    ]
}

CONSULTA

ORDS_METADATA.ORDS_MODULES – Consulta ao módulo

ORDS_METADATA.ORDS_HANDLERS – Consulta às manipulações/métodos

Lembre-se de que essas tabelas podem conter informações sensíveis e devem ser protegidas adequadamente. As informações nelas contidas não devem ser alteradas diretamente, pois isso pode causar problemas com seus serviços RESTful. Use sempre a API do ORDS para criar e modificar seus serviços RESTful.

Sobre o autor

Pós graduado em Gestão de Projetos em Tecnologia da Informação pela UNIASSELVI.
Esposo e Pai, curto atividades ao ar livre (Bike, SUP, Natação, Caminhar, Brincar no campo)

Atua com Banco de Dados Oracle desde de 2007. Atualmente é DBA Senior na FLUIDATA Serviços em Banco de dados (www.fluidata.com.br)

Principais atividade Banco de dados:

Implementação, migração, gerenciamento e suporte a produtos Oracle (8i, 9i, 10g, 11g, 12c, 18c, 19c RAC), multiplataforma;
Implementação, migração, gerenciamento e suporte a produtos Microsoft SQL Server (2008 - 2019);
Implementação, migração, gerenciamento e suporte a produtos PostgreSQL (9.3 - 14);
Monitoramento de ambientes 24×7;
Backup e Recovery;
Performance e Tuning;
Alta disponibilidade (HA);
EM database/grid/cloud control;
Conversão de databases;
Standby database / Oracle Data Guard;

Certificações:

Oracle Cloud Infrastructure 2019 Certified Architect AssociateOracle Cloud Infrastructure 2019 Certified Architect Associate
Oracle Database 12c Administrator Certified ProfessionalOracle Database 12c Administrator Certified Professional
Exadata Database Machine Models X2-2 and X2-8 Technology Support SpecialistExadata Database Machine Models X2-2 and X2-8 Technology Support Specialist
Oracle Database 11g Support SpecialistOracle Database 11g Support Specialist
OCP 11g - Oracle Certified Professional AdministratorOCP 11g - Oracle Certified Professional Administrator
OPN Certified Specialist 10g - PartnerNetwork Certified SpecialistOPN Certified Specialist 10g - PartnerNetwork Certified Specialist
Oracle Database 10g Real Applications Clusters AdministratorCertified ExpertOracle Database 10g Real Applications Clusters AdministratorCertified Expert
Oracle Database 10g: Managing Oracle on Linux Certified ExpertOracle Database 10g: Managing Oracle on Linux Certified Expert
OCP 10g - Oracle Certified Professional AdministratorOCP 10g - Oracle Certified Professional Administrator

Principais atividades DEVOPS:

PHP
ASP.net
C#
Docker
Golang
C++
Delphi
Python
HTML5
JavaScript

Você também pode gostar: