Utilisation de SODA pour REST avec Autonomous Database
Autonomous Database prend en charge SODA (Simple Oracle Document Access) pour REST.
- Présentation de l'utilisation de SODA pour REST
SODA pour REST est un service REST prédéfini qui peut être utilisé pour stocker des documents JSON dans votre base de données. - Charger des données d'exemple de commande à l'aide de SODA pour REST
Oracle fournit un ensemble important de documents de commande JSON, dans le fichier de texte brutPOList.json
, sous la forme d'un tableau JSON d'objets, où chaque objet représente un document. - Utilisation de SODA pour REST avec les informations d'identification client OAuth
Vous pouvez accéder à SODA pour REST sur Autonomous Database à l'aide de l'authentification OAuth. Selon votre application, l'accès à SODA pour REST avec l'authentification OAuth peut améliorer les performances et la sécurité.
Rubrique parent : Développement de services RESTful dans Autonomous Database
Présentation de l'utilisation de SODA pour REST
SODA permet un développement d'applications flexible de type NoSQL sans avoir à utiliser le langage SQL. Avec SODA, les documents JSON sont stockés dans des collections nommées et gérés à l'aide d'opérations CRUD simples (création, lecture, mise à jour et suppression). Bien que le SQL ne soit pas requis, les documents JSON stockés dans des collections SODA restent entièrement accessibles à partir du SQL en cas de besoin. Par exemple, une application opérationnelle peut être entièrement créée à l'aide de SODA (sans SQL), mais les données peuvent ensuite être analysées à l'aide de SQL en dehors de l'application. Autonomous Database SODA offre aux développeurs d'applications le meilleur du NoSQL et du SQL : développement d'applications rapide, flexible et évolutif sans perte de la capacité à exploiter le SQL pour les analyses et le reporting.
SODA pour REST est déployé dans ORDS sous le modèle d'URL suivant, où schema correspond à un schéma de base de données activé par REST.
/ords/schema/soda/latest/*
Les exemples suivants utilisent l'outil de ligne de commande cURL (http://curl.haxx.se/) pour soumettre des demandes REST à la base de données. Cependant, d'autres clients et bibliothèques REST 3ème partie devraient également fonctionner. Les exemples utilisent le schéma de base de données ADMIN
, qui est compatible REST. Vous pouvez utiliser SODA pour REST avec des commandes cURL à partir d'Oracle Cloud Shell.
La commande suivante crée une collection nommée "fruit" dans le schéma ADMIN
:
> curl -X PUT -u 'ADMIN:<password>' \
"https://example-db.adb.us-phoenix-1.oraclecloudapps.com/ords/admin/soda/latest/fruit"
Les commandes suivantes insèrent trois documents JSON dans la collection "fruit" :
> curl -X POST -u 'ADMIN:<password>' \
-H "Content-Type: application/json" --data '{"name":"orange", "count":42}' \
"https://example-db.adb.us-phoenix-1.oraclecloudapps.com/ords/admin/soda/latest/fruit"
{"items":[{"id":"6F7E5C60197E4C8A83AC7D7654F2E375"...
> curl -X POST -u 'ADMIN:<password>' \
-H "Content-Type: application/json" --data '{"name":"pear", "count":5}' \
"https://example-db.adb.us-phoenix-1.oraclecloudapps.com/ords/admin/soda/latest/fruit"
{"items":[{"id":"83714B1E2BBA41F7BA4FA93B109E1E85"...
> curl -X POST -u 'ADMIN:<password>' \
-H "Content-Type: application/json" \
--data '{"name":"apple", "count":12, "color":"red"}' \
"https://example-db.adb.us-phoenix-1.oraclecloudapps.com/ords/admin/soda/latest/fruit"
{"items":[{"id":"BAD7EFA9A2AB49359B8F5251F0B28549"...
L'exemple suivant extrait un document JSON stocké de la collection :
> curl -X POST -u 'ADMIN:<password>' \
-H "Content-Type: application/json" --data '{"name":"orange"}' \
"https://example-db.adb.us-phoenix-1.oraclecloudapps.com/ords/admin/soda/latest/fruit?action=query"
{
"items": [
{
"id":"6F7E5C60197E4C8A83AC7D7654F2E375",
"etag":"57215643953D7C858A7CB28E14BB48549178BE307D1247860AFAB2A958400E16",
"lastModified":"2019-07-12T19:00:28.199666Z",
"created":"2019-07-12T19:00:28.199666Z",
"value":{"name":"orange", "count":42}
}
],
"hasMore":false,
"count":1
}
La requête SQL suivante permet d'accéder à la collection "fruit" :
SELECT
f.json_document.name,
f.json_document.count,
f.json_document.color
FROM fruit f;
La requête renvoie les trois lignes suivantes :
name count color
--------- --------- -------
orange 42 null
pear 5 null
apple 12 red
Si vous utilisez Autonomous Database Toujours gratuit avec Oracle Database 23ai, Oracle recommande ce qui suit :
Pour les projets démarrés à l'aide d'une version de base de données antérieure à Oracle Database 21c, indiquez explicitement les métadonnées de la collection par défaut comme indiqué dans l'exemple de la section Pilotes SODA. Pour les projets démarrés à l'aide d'Oracle Database 21c ou version ultérieure, il suffit d'utiliser les métadonnées par défaut. Pour plus d'informations, reportez-vous à Pilotes SODA.
Ces exemples présentent un sous-ensemble des fonctionnalités SODA et SQL/JSON. Pour plus d'informations, reportez-vous à :
-
SODA for REST pour des informations complètes sur SODA (Simple Oracle Document Access)
-
Opérations HTTP SODA pour REST pour plus d'informations sur les opérations HTTP SODA pour REST
Rubrique parent : Utilisation de SODA pour REST avec Autonomous Database
Chargement des données échantillon de commande à l'aide de SODA pour REST
Oracle fournit un ensemble important de documents de commande JSON, dans le fichier de texte brut POList.json
, sous la forme d'un tableau JSON des objets, où chaque objet représente un document.
Les exemples suivants utilisent l'outil de ligne de commande cURL (http://curl.haxx.se/) pour soumettre des demandes REST à la base de données. Cependant, d'autres clients et bibliothèques REST 3ème partie devraient également fonctionner. Les exemples utilisent le schéma de base de données ADMIN
, qui est compatible REST. Vous pouvez utiliser SODA pour REST avec des commandes cURL à partir d'Oracle Cloud Shell.
Vous pouvez charger cet exemple d'ensemble de données de commande d'achat dans une collection purchaseorder
sur votre instance Autonomous Database avec SODA pour REST, à l'aide des commandes curl suivantes :
curl -X GET "https://raw.githubusercontent.com/oracle/db-sample-schemas/master/order_entry/POList.json" -o POList.json
curl -X PUT -u 'ADMIN:password' \
"https://example-db.adb.us-phoenix-1.oraclecloudapps.com/ords/admin/soda/latest/purchaseorder"
curl -X POST -H -u 'ADMIN:password' 'Content-type: application/json' -d @POList.json \
"https://example-db.adb.us-phoenix-1.oraclecloudapps.com/ords/admin/soda/latest/purchaseorder?action=insert"
Vous pouvez ensuite utiliser ces données de commande pour tester les exemples figurant dans le Guide du développeur JSON Oracle Database.
Par exemple, la requête suivante sélectionne la valeur id
d'un document JSON et les valeurs de la collection de commandes JSON stockées dans la colonne json_document
de la table purchaseorder
. Les valeurs sélectionnées sont issues des champs PONumber
, Reference
et Requestor
de la colonne JSON json_document
, qui sont projetées à partir du document en tant que colonnes virtuelles (pour plus d'informations, reportez-vous à Clause SQL NESTED au lieu de JSON_TABLE).
SELECT id, t.*
FROM purchaseorder
NESTED json_document COLUMNS(PONumber, Reference, Requestor) t;
Pour plus d'informations, reportez-vous à :
-
SODA for REST pour des informations complètes sur SODA (Simple Oracle Document Access)
-
Opérations HTTP SODA pour REST pour plus d'informations sur les opérations HTTP SODA pour REST
Rubrique parent : Utilisation de SODA pour REST avec Autonomous Database
Utilisation de SODA for REST avec les informations d'identification client OAuth
Vous pouvez accéder à SODA pour REST sur Autonomous Database à l'aide de l'authentification OAuth. Selon votre application, l'accès à SODA pour REST avec l'authentification OAuth peut améliorer les performances et la sécurité.
Pour utiliser l'authentification OAuth afin de fournir un accès limité à SODA pour REST sur Autonomous Database, procédez comme suit :
Pour plus d'informations sur l'accès sécurisé aux services RESTful, reportez-vous à Configuration de l'accès sécurisé aux services RESTful.
Rubrique parent : Utilisation de SODA pour REST avec Autonomous Database