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
eAdditionalProperties
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
paraschema
.responses
,headers
eparameters
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 queindex
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: Ou,
|
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 |
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:
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"
}
}
}
}
}
}
}