Ativo de Dados REST Genérico

No momento, você precisa fazer upload de um arquivo de manifesto ao criar um ativo de dados REST. Um arquivo de manifesto descreve toda a API do URL base, incluindo caminhos, operações, parâmetros, estruturas de corpo e resposta da solicitação e propriedades do objeto. O arquivo não deve exceder 3 MB.

Antes de criar um ativo de dados REST, certifique-se de entender o que é suportado e quaisquer limitações atuais.

Antes de Começar

O Data Integration suporta OpenAPI 3.0.0 (e mais recente) e apenas arquivos de manifesto JSON ou YML/YAML para sua origem de dados REST.

Para criar um ativo de dados REST, você precisa fornecer o URL base de seus pontos finais de API e fazer upload do arquivo de manifesto.

Um ponto final de API completo consiste em um URL base, um caminho de recurso e um URL de servidor que é definido no arquivo de manifesto. Considere o ponto final com o caminho como /users/findByStatus:

https://myapi.example.com/v1/users/findByStatus

Se o arquivo de manifesto tiver a URL do servidor como /v1, a URL base será:

https://myapi.example.com

Se a URL do servidor não estiver definida no arquivo de manifesto, ou o arquivo de manifesto tiver a URL do servidor como /, a URL base será:

https://myapi.example.com/v1

Considere os seguintes recursos suportados e limitações atuais ao criar e usar um ativo de dados REST como origem no Data Integration:

  • O arquivo de manifesto para upload não deve exceder 3 MB.
  • Arquivos de manifesto JSON e YML/YAML baseados em uma versão menor que 3.0.0 não são suportados.
  • OAuth 2.0, Básico e sem suporte para autenticação.
  • Somente chamadas GET são suportadas.
  • Cabeçalho e cookies em um corpo de solicitação ou resposta não são suportados.
  • Não há suporte para uma resposta JSON como Arquivo.
  • Somente o JSON content-type é suportado.
  • As palavras-chave OneOf, AnyOf, AllOf e AdditionalProperties não são suportadas em um arquivo de manifesto.
  • O conteúdo do parâmetro deve ser descrito usando a palavra-chave schema; a palavra-chave de conteúdo não é suportada.
  • Um valor padrão para um parâmetro não é suportado. No caso de um parâmetro opcional com padrão, um valor padrão deve ser fornecido explicitamente.
  • Somente os tipos de dados Inteiro, Longo, Flutuante, Duplo, Número e String são suportados.
  • Os formatos de dados Data, Senha, E-mail e Binário são ignorados e tratados apenas como String.
  • Somente tipos primitivos para parâmetros de caminho são suportados.
  • Primitivo e Array de primitivas são suportados para parâmetros de consulta.
  • O array de Array em uma resposta JSON não é suportado.
  • Os atributos de estilo e explosão são ignorados, e um parâmetro de consulta é tratado como style=form, explode=true enquanto um parâmetro de caminho é tratado como style=simple, explode=false.
  • A referência (#ref) deve ser apenas local; ela não pode apontar para algum URL ou outro arquivo.
  • Há suporte para #ref para schema. responses, headers e parameters não devem usar #ref.
  • No momento, a opção Testar conexão para um ativo de dados REST não está implementada; ela sempre retorna verdadeiro (bem-sucedida).
  • Ao exibir os detalhes do ativo de dados, a criação de perfil de dados ou a visualização de dados hierárquicos não é suportada.
  • Em uma resposta, somente atributos de nível raiz são mapeados para nomes de coluna.
  • Se um ponto final retornar um array de primitivas, haverá apenas uma coluna, como "<name>_index", em que index será >= 0

Propriedades de Ativo de Dados REST

Certifique-se de ter o URL base e o arquivo de manifesto antes de criar seu ativo de dados REST.

Para usar um segredo para a senha com autenticação básica, consulte Segredos do OCI Vault e Oracle Wallets.

Para criar um ativo de dados que se conecte a uma origem REST, conclua as propriedades e os detalhes da conexão a seguir. Consulte Arquivo de Manifesto de Amostra.

Campo Descrição
Propriedades
Nome Digite um nome para o ativo de dados.
Identificador O identificador é um valor gerado pelo sistema com base no nome. Você pode alterar o valor do identificador, mas depois de criá-lo e salvá-lo, não poderá atualizá-lo.
Descrição (Opcional) Adicione uma descrição.
Tipo O campo mostra o tipo de origem de dados selecionado no painel Selecionar tipo de ativo de dados (conforme descrito em Criando um Ativo de Dados). O Data Integration exibe os campos de propriedade do ativo de dados e os campos de conexão padrão com base nesse tipo.
URL Base

Informe o URL base de seus pontos finais de API.

Por exemplo: https://myapi.example.com/v1

Ou,

https://myapi.example.com

Fazer Upload do arquivo de Manifesto

Elimine o arquivo YML/YAML ou JSON para fazer upload do arquivo de manifesto que pode passar pelo URL base. Como alternativa, você pode clicar no link Selecionar arquivo para procurar o local que tem o arquivo.

Se você não fornecer um arquivo de manifesto e a mensagem Manifest file or manifest URL should be provided for exibida, ignore a parte sobre um URL de manifesto. Atualmente, somente o upload de um arquivo de manifesto é suportado.

Informações de conexão padrão
Nome Informe um nome para a conexão padrão.
Identificador O identificador é um valor gerado pelo sistema com base no nome. Você pode alterar o valor do identificador, mas depois de criá-lo e salvá-lo, não poderá atualizá-lo.
Descrição (Opcional) Adicione uma descrição.
Autenticação

Selecione um dos seguintes métodos de autenticação:

  • Autenticação básica: Se você selecionar esse método, os seguintes campos serão exibidos:
    • Nome do Usuário Informe o nome do usuário.
    • Usar OCID do segredo do vault: Se você usar um segredo no Oracle Cloud Infrastructure Vault para armazenar a senha, selecione essa opção. Digite o OCID do segredo da senha (associada ao usuário) do OCI Vault.
    • Usar senha: Se você selecionar essa opção, digite a senha.
  • OAuth Autenticação 2.0: Se você selecionar esse método, os seguintes campos serão exibidos:
    • URL do token de acesso: Informe o URL que é usado para trocar credenciais de autenticação por tokens de acesso.
    • ID do Cliente: Informe a chave de ID do cliente para um aplicativo específico.
    • OCID do segredo do vault para segredo do cliente: Digite o OCID do segredo para o segredo do vault do OCI.
    • Escopo: Informe o escopo das permissões concedidas pelo token de acesso.
  • Nenhum: Se você não quiser usar um método de autenticação, selecione essa opção.

O tipo de autenticação de uma conexão não pode ser alterado após sua criação.

(Opcional) Testar conexão
Testar conexão Depois de preencher todos os campos obrigatórios, selecione Testar conexão para garantir que os detalhes do ativo de dados tenham sido informados corretamente e que a conexão possa ser estabelecida. Uma mensagem de êxito será exibida se o teste for bem-sucedido. Se o teste falhar com uma mensagem de erro, revise as definições de conexão e tente novamente.

Arquivo de Manifesto de Amostra

{
    "openapi": "3.0.1",
    "servers": [
        {
            "url": "/v1",
            "description": "Generated server url"
        }
    ],
    "paths": {
        "/orders": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getOrders",
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/orderSuccess"
                    }
                }
            }
        },
        "/paginatedOrders": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getPaginatedOrdersRowOffset",
                "parameters": [
                    {
                        "name": "maximumPageSize",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "firstRowNumber",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "rowOffsetParameter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSizeParameter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PaginatedOrders"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/paginatedOrdersPageNum": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getPaginatedOrdersPageNumberBased",
                "parameters": [
                    {
                        "name": "maximumPageSize",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "firstPageNumber",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageSizeParameter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "pageNumberParameter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PaginatedOrders"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/orders/{orderNo}": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getOrdersByOrderID",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/orderNum"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Order"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "deleteOrder",
                "parameters": [
                    {
                        "name": "orderNo",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/orders/noAuth/{orderNo}": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getOrdersByOrderIDNoAuth",
                "parameters": [
                    {
                        "name": "orderNo",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Order"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/orders/headers/validation": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getOrdersAfterHeadersValidation",
                "parameters": [
                    {
                        "name": "UserId",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Password",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "Email",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SalesOrders"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/orders/filterbystore": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getOrdersByStore",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/storeId"
                    },
                    {
                        "name": "customerName",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Order"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/orders/byName": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getOrdersByCustomerName",
                "parameters": [
                    {
                        "name": "customerName",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Order"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/orders/byEmail": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getOrdersByCustomerEmail",
                "parameters": [
                    {
                        "name": "customerEmail",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Order"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/customers/getCustomersName": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getCustomersName",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/customers/getCustomer": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getCustomer",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Customer"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/customers/getCustomerList": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getCustomersList",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Customer"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/customers/getCustomerEmail": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getCustomerInfoSingleField",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "customerEmail": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/headOffice": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getHeadOffice",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/HeadOffice"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/namedPrimitiveArray": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getNamedPrimitiveArray",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/primitive": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getSinglePrimitive",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/reservedColumns": {
            "get": {
                "tags": [
                    "rest-connector-controller"
                ],
                "operationId": "getReservedColumns",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Positions"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "Address": {
                "type": "object",
                "properties": {
                    "street": {
                        "type": "string"
                    },
                    "city": {
                        "type": "string"
                    },
                    "country": {
                        "type": "string"
                    },
                    "zipcode": {
                        "type": "string"
                    }
                }
            },
            "Fullfilment": {
                "type": "object",
                "properties": {
                    "storeNo": {
                        "type": "string"
                    },
                    "lineItems": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/LineItems"
                        }
                    }
                }
            },
            "LineItems": {
                "type": "object",
                "properties": {
                    "itemName": {
                        "type": "string"
                    },
                    "itemId": {
                        "type": "string"
                    },
                    "qty": {
                        "type": "string"
                    }
                }
            },
            "Order": {
                "type": "object",
                "properties": {
                    "customerName": {
                        "type": "string"
                    },
                    "orderNo": {
                        "type": "string"
                    },
                    "phoneNo": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string"
                    },
                    "address": {
                        "$ref": "#/components/schemas/Address"
                    },
                    "fullfilments": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Fullfilment"
                        }
                    }
                }
            },
            "PaginatedOrders": {
                "type": "object",
                "properties": {
                    "items": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Order"
                        }
                    }
                }
            },
            "SalesOrders": {
                "type": "object",
                "properties": {
                    "orders": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Order"
                        }
                    }
                }
            },
            "Customer": {
                "type": "object",
                "properties": {
                    "customerEmail": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "customerName": {
                        "type": "string"
                    },
                    "phoneno": {
                        "type": "string"
                    },
                    "address": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        }
                    }
                }
            },
            "HeadOffice": {
                "type": "object",
                "properties": {
                    "longitude": {
                        "type": "number"
                    },
                    "latitude": {
                        "type": "number",
                        "format": "double"
                    },
                    "turnover": {
                        "type": "number",
                        "format": "float"
                    },
                    "milliSeconds": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "storeNo": {
                        "type": "integer",
                        "format": "int32"
                    },
                    "noOfEmployees": {
                        "type": "integer"
                    }
                }
            },
            "Positions": {
                "type": "object",
                "properties": {
                    "position": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "Position_1": {
                                    "type": "integer"
                                },
                                "Position": {
                                    "type": "string"
                                },
                                "Position_3": {
                                    "type": "number",
                                    "format": "float"
                                },
                                "Position_4": {
                                    "type": "number",
                                    "format": "double"
                                },
                                "Position_2": {
                                    "type": "integer",
                                    "format": "int64"
                                },
                                "Position_11": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "parameters": {
            "orderNum": {
                "name": "orderNo",
                "in": "path",
                "required": true,
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            },
            "storeId": {
                "name": "storeId",
                "in": "query",
                "required": true,
                "schema": {
                    "type": "string"
                }
            }
        },
        "responses": {
            "orderSuccess": {
                "description": "OK",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/SalesOrders"
                        }
                    }
                }
            }
        }
    }
}