Ressource de données REST générique
Actuellement, vous devez 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 de l'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 courantes.
Avant de commencer
Le service d'intégration de données prend en charge la version OpenAPI 3.0.0 (et supérieure) 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 points d'extrémité d'API et charger le fichier manifeste.
Un point d'extrémité d'API complet se compose d'une URL de base, d'un chemin de ressource et d'une URL de serveur qui est définie dans le fichier manifeste. Considérez le point d'extrémité avec le chemin comme /users/findByStatus
:
https://myapi.example.com/v1/users/findByStatus
Si l'URL du serveur du fichier manifeste est /v1
, l'URL de base est :
https://myapi.example.com
Si l'URL du serveur n'est pas définie dans le fichier manifeste ou si l'URL du serveur est /
dans le fichier manifeste, l'URL de base est :
https://myapi.example.com/v1
Tenez compte des capacités prises en charge suivantes et des limites courantes lors de la création et de l'utilisation d'une ressource de données REST en tant que source dans le service d'intégration de données :
- Le fichier manifeste à 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 n'est prise en charge.
- Seuls les appels
GET
sont pris en charge. - L'en-tête et les témoins d'un corps de demande ou d'une réponse ne sont pas pris en charge.
- Une réponse JSON en tant que fichier n'est pas prise en charge.
- Seul JSON
content-type
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é du contenu n'est pas pris en charge. - Une valeur par défaut pour un paramètre n'est pas prise en charge. Dans le cas d'un paramètre facultatif avec 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 Chaîne uniquement.
- Seuls les types primitifs pour les paramètres de chemin sont pris en charge.
- Primitive et Array of primitives sont pris en charge pour les paramètres d'interrogation.
- Le tableau du tableau dans une réponse JSON n'est pas pris en charge.
- Les attributs de style et d'éclatement sont ignorés, et un paramètre d'interrogation est traité comme style=form, explode=true alors qu'un paramètre de chemin est traité comme 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 mise en oeuvre; elle retourne toujours la valeur Vrai (réussite).
- Lors de la consultation des détails de la ressource de données, le profilage ou la prévisualisation des données hiérarchiques n'est pas pris en charge.
- Dans une réponse, seuls les attributs de niveau racine sont mappés aux noms de colonne.
- Si un point d'extrémité retourne 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 d'avoir l'URL de base et le fichier manifeste avant de créer votre ressource de données REST.
Pour utiliser une clé secrète pour le mot de passe avec l'authentification de base, voir Clés secrètes du service de chambre forte OCI et portefeuilles Oracle.
Pour créer une ressource de données qui se connecte à une source REST, entrez les propriétés et les détails de connexion suivants. Voir Exemple de fichier manifeste.
Champ | Description |
---|---|
Propriétés | |
Nom | Entrez un nom pour 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, après la création et l'enregistrement, vous ne pouvez pas la mettre à jour. |
Description | (Facultatif) Ajoutez 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 points d'extrémité d'API. Par exemple : Ou,
|
Charger le fichier de manifeste |
Déposez le fichier YML/YAML ou JSON pour charger le fichier manifeste qui peut passer par l'URL de base. Vous pouvez également cliquer sur le lien Sélectionner un fichier pour naviguer jusqu'à l'emplacement qui contient le fichier. Si vous ne fournissez pas de fichier manifeste et que le message |
Informations sur la connexion par défaut | |
Nom | Entrez un nom pour 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, après la création et l'enregistrement, vous ne pouvez pas la mettre à jour. |
Description | (Facultatif) Ajoutez 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 | |
Tester la connexion | Après avoir rempli tous les champs obligatoires, sélectionnez Tester la connexion pour vous assurer que les détails de la ressource de données ont été entrés correctement et que la connexion peut être établie. Un message de réussite s'affiche si le test réussit. 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"
}
}
}
}
}
}
}