Uso de SODA para REST con Autonomous Database
Autonomous Database soporta Simple Oracle Document Access (SODA) para REST.
- Visión general del uso de SODA para REST
SODA para REST es un servicio REST desplegado previamente que se puede utilizar para almacenar documentos de JSON en la base de datos. - Carga de datos de ejemplo de orden de compra mediante SODA para REST
Oracle proporciona un juego sustancial de documentos de orden de compra JSON, en el archivo de texto sin formatoPOList.json
, como una matriz de objetos JSON, donde cada objeto representa un documento. - Uso de SOSD para REST con credenciales de cliente OAuth
Puede acceder a SOSD para REST en Autonomous Database mediante la autenticación OAuth. Según la aplicación, el acceso a SODA para REST con autenticación OAuth puede mejorar el rendimiento y la seguridad.
Tema principal: Desarrollo de servicios RESTful en Autonomous Database
Visión general del uso de SODA para REST
SODA permite un desarrollo de aplicaciones flexible de estilo NoSQL sin tener que utilizar SQL. Con SODA, los documentos JSON se almacenan en recopilaciones con nombre y se gestionan mediante operaciones de CRUD simples (crear, leer, actualizar y suprimir). Y aunque SQL no es necesario, el JSON almacenado en recopilaciones de SODA sigue siendo totalmente accesible desde SQL cuando sea necesario. Por ejemplo, una aplicación operativa se puede crear completamente mediante SODA (sin SQL), pero los datos se pueden analizar más tarde mediante SQL desde fuera de la aplicación. Autonomous Database SODA ofrece a los desarrolladores de aplicaciones lo mejor de los entornos NoSQL y SQL: desarrollo de aplicaciones rápido, flexible y escalable sin perder la capacidad de aprovechar SQL para análisis e informes.
SODA para REST se implementa en ORDS con el siguiente patrón de URL, donde esquema corresponde a un esquema de base de datos activado para REST.
/ords/schema/soda/latest/*
En los siguientes ejemplos se utiliza la herramienta de línea de comandos cURL (http://curl.haxx.se/) para enviar solicitudes REST a la base de datos. Sin embargo, otros clientes y bibliotecas REST de 3a parte también deberían funcionar. En los ejemplos se utiliza el esquema de base de datos ADMIN
, que está activado para REST. Puede usar SODA para REST con comandos cURL desde Oracle Cloud Shell.
Este comando crea una nueva recopilación denominada "fruit" en el esquema ADMIN
:
> curl -X PUT -u 'ADMIN:<password>' \
"https://example-db.adb.us-phoenix-1.oraclecloudapps.com/ords/admin/soda/latest/fruit"
Con estos comandos se insertan tres documentos de JSON en la recopilación de 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"...
Este ejemplo recupera un documento de JSON almacenado de la recopilación:
> 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
}
Esta consulta SQL accede a la recolección de frutas:
SELECT
f.json_document.name,
f.json_document.count,
f.json_document.color
FROM fruit f;
La consulta devuelve estas tres filas:
name count color
--------- --------- -------
orange 42 null
pear 5 null
apple 12 red
Si utiliza Autonomous Database siempre gratis con Oracle Database 21c, Oracle recomienda lo siguiente:
Para los proyectos que se hayan iniciado con una versión de base de datos anterior a Oracle Database 21c, especifique explícitamente los metadatos para la recopilación por defecto como se especifica en el ejemplo de la sección Controladores de SODA. Para los proyectos iniciados con la versión Oracle Database 21c o posterior, simplemente utilice los metadatos por defecto. Consulte Controladores de SOA para obtener más información.
En estos ejemplos se muestra un subjuego de las funciones de SODA y SQL/JSON. Puede obtener más información en los siguientes enlaces:
-
SODA para REST para obtener información completa sobre Simple Oracle Document Access (SODA)
-
SODA para operaciones HTTP de REST para obtener información sobre SODA para operaciones HTTP de REST
Tema principal: Uso de SODA para REST con Autonomous Database
Carga de datos de muestra de orden de compra mediante SODA para REST
Oracle proporciona un juego sustancial de documentos de orden de compra JSON, en el archivo de texto libre POList.json
, como una matriz de objetos JSON, donde cada objeto representa un documento.
En los siguientes ejemplos se utiliza la herramienta de línea de comandos cURL (http://curl.haxx.se/) para enviar solicitudes REST a la base de datos. Sin embargo, otros clientes y bibliotecas REST de 3a parte también deberían funcionar. En los ejemplos se utiliza el esquema de base de datos ADMIN
, que está activado para REST. Puede utilizar SODA para REST con comandos cURL desde Oracle Cloud Shell.
Puede cargar este juego de datos de orden de compra de muestra en una recopilación purchaseorder
de Autonomous Database con SODA para REST mediante estos comandos curl:
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"
A continuación, puede utilizar estos datos de orden de compra para probar ejemplos en Oracle Database JSON Developer's Developer's Developer's Developer's Developer's Developer's Developer's Guide.
Por ejemplo, con la siguiente consulta se selecciona tanto el valor id
de un documento de JSON como los valores de la recopilación de órdenes de compra de JSON almacenados en la columna json_document
de la tabla purchaseorder
. Los valores seleccionados proceden de los campos PONumber
, Reference
y Requestor
de la columna de JSON json_document
, que se proyectan desde el documento como columnas virtuales (consulte Cláusula NESTED de SQL en lugar de JSON_TABLE para obtener más información).
SELECT id, t.*
FROM purchaseorder
NESTED json_document COLUMNS(PONumber, Reference, Requestor) t;
Puede obtener más información en los siguientes enlaces:
-
SODA para REST para obtener información completa sobre Simple Oracle Document Access (SODA)
-
SODA para operaciones HTTP de REST para obtener información sobre SODA para operaciones HTTP de REST
Tema principal: Uso de SODA para REST con Autonomous Database
Uso de SODA para REST con credenciales de cliente OAuth
Puede acceder a SODA para REST en Autonomous Database mediante la autenticación OAuth. Según la aplicación, el acceso a SODA para REST con autenticación OAuth puede mejorar el rendimiento y la seguridad.
Realice los siguientes pasos para utilizar la autenticación OAuth a fin de proporcionar acceso limitado a SODA para REST en Autonomous Database:
Consulte Configuración de acceso seguro a servicios RESTful para obtener información completa sobre la protección del acceso a los servicios RESTful.
Tema principal: Uso de SODA para REST con Autonomous Database