Ressource de données REST générique
Actuellement, vous devez télécharger un fichier manifeste lorsque vous créez une ressource de données REST. Un fichier manifeste décrit l'ensemble de l'API de votre URL de base, y compris les chemins, les opérations, les paramètres, le corps de la demande et les structures de réponse, ainsi que les propriétés d'objet. Le fichier ne doit pas dépasser 3 Mo.
Avant de créer une ressource de données REST, assurez-vous de comprendre ce qui est pris en charge et les limites actuelles.
Avant de commencer
Data Integration prend en charge OpenAPI 3.0.0 (et versions ultérieures) et uniquement les fichiers manifestes JSON ou YML/YAML pour votre source de données REST.
Pour créer une ressource de données REST, vous devez fournir l'URL de base de vos adresses d'API et télécharger le fichier manifeste.
Une adresse d'API complète se compose d'une URL de base, d'un chemin de ressource et d'une URL de serveur définie dans le fichier manifeste. Prenons l'adresse avec le chemin /users/findByStatus
:
https://myapi.example.com/v1/users/findByStatus
Si l'URL du serveur du fichier manifeste est /v1
, l'URL de base est la suivante :
https://myapi.example.com
Si l'URL du serveur n'est pas définie dans le fichier manifeste ou si l'URL du serveur du fichier manifeste est /
, l'URL de base est la suivante :
https://myapi.example.com/v1
Tenez compte des fonctionnalités prises en charge et des limites actuelles suivantes lors de la création et de l'utilisation d'une ressource de données REST en tant que source dans Data Integration :
- Le fichier manifeste à télécharger ne doit pas dépasser 3 Mo.
- Les fichiers manifestes JSON et YML/YAML basés sur une version inférieure à 3.0.0 ne sont pas pris en charge.
- OAuth 2.0, Basic et aucune authentification sont prises en charge.
- Seuls les appels
GET
sont pris en charge. - L'en-tête et les cookies dans un corps de demande ou une réponse ne sont pas pris en charge.
- Une réponse JSON en tant que fichier n'est pas prise en charge.
- Seul
content-type
JSON est pris en charge. - Les mots-clés
OneOf
,AnyOf
,AllOf
etAdditionalProperties
ne sont pas pris en charge dans un fichier manifeste. - Le contenu du paramètre doit être décrit à l'aide du mot-clé
schema
; le mot-clé content n'est pas pris en charge. - La valeur par défaut d'un paramètre n'est pas prise en charge. Dans le cas d'un paramètre facultatif avec la valeur par défaut, une valeur par défaut doit être fournie explicitement.
- Seuls les types de données Integer, Long, Float, Double, Number et String sont pris en charge.
- Les formats de données Date, Mot de passe, Courriel et Binaire sont ignorés et traités comme des chaînes uniquement.
- Seuls les types primitifs pour les paramètres de chemin sont pris en charge.
- Les primitives et les tableaux de primitives sont pris en charge pour les paramètres de requête.
- Le tableau de tableau dans une réponse JSON n'est pas pris en charge.
- Les attributs de style et d'explosion sont ignorés et un paramètre de requête est traité comme suit : style=form, explode=true tandis qu'un paramètre de chemin est traité comme suit : style=simple, explode=false.
- La référence (
#ref
) doit être locale uniquement ; elle ne peut pas pointer vers une URL ou un autre fichier. #ref
pourschema
est pris en charge.responses
,headers
etparameters
ne doivent pas utiliser#ref
.- Actuellement, l'option Tester la connexion pour une ressource de données REST n'est pas implémentée. Elle renvoie toujours la valeur True (successful).
- Lors de la visualisation des détails de ressource de données, le profilage ou l'aperçu des données hiérarchiques ne sont pas pris en charge.
- Dans une réponse, seuls les attributs de niveau racine sont mis en correspondance avec les noms de colonne.
- Si une adresse renvoie un tableau de primitives, il n'y a qu'une seule colonne, telle que "
<name>_index
", oùindex
est>= 0
Propriétés de ressource de données REST
Assurez-vous que vous disposez de l'URL de base et du fichier manifeste avant de créer votre ressource de données REST.
Afin d'utiliser une clé secrète pour le mot de passe avec une authentification de base, reportez-vous à Clés secrètes OCI Vault et portefeuilles Oracle.
Pour créer une ressource de données qui se connecte à une source REST, renseignez les propriétés et les détails de connexion suivants. Reportez-vous à la section Sample Manifest File.
Champ | Description |
---|---|
Propriétés | |
Nom | Entrez le nom de la ressource de données. |
Identificateur | L'identificateur est une valeur générée par le système en fonction du nom. Vous pouvez modifier la valeur de l'identificateur, mais une fois que vous avez créé et enregistré, vous ne pouvez plus la mettre à jour. |
Description | (Facultatif) Ajouter une description. |
Type | Le champ affiche le type de source de données que vous avez sélectionné dans le panneau Sélectionner un type de ressource de données (comme décrit dans Création d'une ressource de données). Data Integration affiche les champs de propriété de ressource de données et les champs de connexion par défaut en fonction de ce type. |
URL de base |
Entrez l'URL de base de vos adresses d'API. Par exemple : Ou,
|
Télécharger le fichier manifeste |
Déposez le fichier YML/YAML ou JSON pour télécharger le fichier manifeste qui peut passer par l'URL de base. Vous pouvez également cliquer sur le lien Sélectionner un fichier pour accéder à l'emplacement contenant le fichier. Si vous ne fournissez pas de fichier manifeste et que le message |
Informations de connexion par défaut | |
Nom | Entrez le nom de la connexion par défaut. |
Identificateur | L'identificateur est une valeur générée par le système en fonction du nom. Vous pouvez modifier la valeur de l'identificateur, mais une fois que vous avez créé et enregistré, vous ne pouvez plus la mettre à jour. |
Description | (Facultatif) Ajouter une description. |
Authentification |
Sélectionnez l'une des méthodes d'authentification suivantes :
Le type d'authentification d'une connexion ne peut pas être modifié après sa création. |
(Facultatif) Tester la connexion | |
Test de connexion | Une fois que vous avez renseigné tous les champs obligatoires, sélectionnez Tester la connexion pour vous assurer que les détails de la ressource de données ont été saisis correctement et que la connexion peut être établie. Un message de succès s'affiche si le test a réussi. Si le test échoue avec un message d'erreur, vérifiez les paramètres de connexion et réessayez. |
Exemple de fichier manifeste
{
"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"
}
}
}
}
}
}
}