Las interfaces de programación de aplicaciones (API) son como el combustible para la transformación digital, lo que permite a las empresas desarrollar rápidamente aplicaciones y microservicios. camión de datos.IO es un backend de API nuevo, gratuito y de código abierto (Apache 2.0) sin código/sin código que reduce el tiempo que lleva construir las API.
DataTrucker lee la configuración simple de JSON y YAML y genera código para convertirlo en una API. Además de crear el código, aloja el código base en un servidor Node.js y lo pone a disposición del público de inmediato.
DataTrucker maneja la mayoría de las actividades diarias que un desarrollador necesita realizar en un nuevo proyecto, incluyendo:
- Cree puntos finales de API con lógica comercial específica (usando un complemento simple)
- Aplicar control de acceso estándar basado en roles (RBAC)
- Aplicar lógica de autorización
- Aplicar endurecimiento en puntos finales
- Manejo de la gestión de registros
- Conecta varios sistemas
- Lógica empresarial modular
- Hágalo todo con poco o ningún código
Instale el camión de datos
Este tutorial muestra cómo instalar DataTrucker en OpenShift y crear una API para una base de datos de Postgres. El proceso es similar en un entorno de Kubernetes.
[ Download The API owner’s manual to learn 7 best practices of effective API programs. ]
Paso 1: crea un espacio de nombres llamado camionero
oc new-project trucker
Paso 2: Descarga e instala la aplicación
DataTrucker.IO está disponible en OperatorHub de OpenShift y se puede agregar a su clúster como operador.
Paso 3: Navegue a Operadores
hacer clic operador en el panel de navegación izquierdo y abra camión de datos.IO operador.
Paso 4: Cree la configuración de DataTrucker ejecutando el objeto YAML
Cree una reclamación de volumen persistente (PVC) para el backend de la base de datos. (notas: La base de datos de Postgres proporcionada a continuación utiliza Contenedor de datos crujientes Comienzo. Recomiendo usar bases de datos con redundancia geográfica reforzadas para las cargas de trabajo de producción. )
- Crear un
samplepvc
. - Cree una instancia del objeto DatatruckerConfig.
- antes de hacer clic crearasegurarse
TempDB.enabled
sí verdadero en el objeto DatatruckerConfig. Esto es necesario para la creación de prototipos para la demostración a continuación.
Puedes encontrar un ejemplo en DataTrucker Repositorio GitLab.
oc apply -f DatatruckerConfig.yaml
objeto de configuración Kind: DatatruckerConfig
Crea lo siguiente:
- base de datos postgres: Puede crear un temporal no endurecido Datos crujientes Siga la base de datos para este tutorial habilitando lo siguiente en su configuración de DataTrucker (recuerde que para las cargas de trabajo de producción debe usar una base de datos reforzada con redundancia geográfica):
TempDB: enabled: true pvc: samplepvc
- Configuración de la base de datos: En un sistema de producción, use una base de datos Postgres con redundancia geográfica:
user: testuser password: password databasename: userdb hostname: db type: pg port: 5432
- Configuración de cifrado: Cree una configuración de cifrado:
API: cryptokeys: |- ....
Para más detalles ver endurecimiento de producción Apartado de la documentación de DataTrucker.IO.
Paso 5: Cree puntos finales de inicio de sesión y administración
Cree el punto final para obtener el token de inicio de sesión:
apiVersion: datatrucker.datatrucker.io/v1
kind: DatatruckerFlow
metadata:
name: login-endpoint
spec:
Type: Login
DatatruckerConfig: < the name of the config object created in step 4 >
Cree puntos finales para la administración y las credenciales de RBAC:
apiVersion: datatrucker.datatrucker.io/v1
kind: DatatruckerFlow
metadata:
name: management-endpoint
spec:
Type: Management
DatatruckerConfig: < the name of the config object created in step 4 >
Los elementos anteriores crean puntos finales de implementación y servicio para la interfaz de usuario (UI) y la API de administración.
Paso 6: exponer el extremo de administración
Ruta pública:
$ oc get svc | grep endpoint
login-endpoint ClusterIP 10.217.5.89 80/TCP 3m43s
management-endpoint ClusterIP 10.217.5.220 80/TCP 3m29s
management-endpoint-ui ClusterIP 10.217.4.42 80/TCP 3m28s
$ oc expose svc management-endpoint-ui
route.route.openshift.io/management-endpoint-ui exposed
$ oc expose svc login-endpoint
route.route.openshift.io/login-endpoint exposed
$ oc get routes
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
login-endpoint login-endpoint-trucker.apps-crc.testing login-endpoint 8080 None
management-endpoint-ui management-endpoint-ui-trucker.apps-crc.testing management-endpoint-ui 9080 None
Paso 7: Inicie sesión en la interfaz de usuario mediante un navegador web
- Crear un usuario administrador:
(Gaurav Shankar, CC BY-SA 4.0) - Inicie sesión como este usuario administrador:
(Gaurav Shankar, CC BY-SA 4.0)
Paso 8: crear credenciales de Postgres para la API
Ahora que DataTrucker está instalado y configurado, está listo para crear su API.
Cree credenciales de Postgres para la base de datos de su elección:
- Expanda la barra de navegación izquierda.
- escoger Certificado.
- Abierto Credenciales de PostgreSQL cristal.
- hacer clic Crear credenciales.
- Ingrese los detalles de su base de datos.
Paso 9: Cree la API de Postgres
Cree un objeto de flujo con la siguiente especificación de trabajo.
---
apiVersion: datatrucker.datatrucker.io/v1
kind: DatatruckerFlow
metadata:
name: my-first-api
spec:
DatatruckerConfig: datatruckerconfig-sample
JobDefinitions:
- credentialname: db < cred name from step 8 >
job_timeout: 600
name: postgres1
restmethod: POST
script: 'select ''[[userinput]]'' as userinput; ' < query you want to execute>
tenant: Admin
type: DB-Postgres
validations:
properties:
userinput:
maxLength: 18
pattern: '^[a-z0-9]*
La especificación crea un nuevo microservicio para alojar la API, que tiene dos API en su ruta:
- postgres1:
- Obtenga la fecha actual y los parámetros de envío del usuario a SQL
- es una solicitud POST
- Desinfecte la entrada para las variables de entrada del usuario
userinput
- postgres2:
- Obtener una lista de mesas disponibles
- es una solicitud GET
[ Free download: Advanced Linux commands cheat sheet. ]
Ahora, busque el servicio:
$. oc get svc | grep my-first-api
my-first-api ClusterIP 10.217.5.116 80/TCP 45s
$. oc expose svc my-first-api
route.route.openshift.io/my-first-api exposed
$. oc get routes | grep my-first-api
my-first-api my-first-api-trucker.apps-crc.testing my-first-api 8080 None
Ahora que tiene una URL, pruébela.
El formato de la URL es el siguiente:
http:///api/v1/jobs/
En el ejemplo anterior, creó dos JobDefinitions:
- postgres1 de tipo POST
- OBTENER tipo de postgres2
Paso 10: prueba tu API
Obtenga el token de inicio de sesión desde el punto final de inicio de sesión:
curl --location --request POST 'http://login-endpoint-trucker./api/v1/login' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "xxx",
"password": "xxxxxxxx",
"tenant": "Admin"
}'
Response:
{
"status": true,
"username": "xxx",
"token": "xxxxxxxxxxxx"
}
Ahora use el token de inicio de sesión con su API:
- Primera API:
curl --location --request POST 'http://my-first-api-trucker./api/v1/jobs/postgres1' \ --header 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ --header 'Content-Type: application/json' \ --data-raw '{ "userinput": "myfirstresponse" }' Response: { "reqCompleted": true, "date": "2021-09-05T22:05:58.064Z", "reqID": "req-3w", "data": { "command": "SELECT", "rowCount": 1, "oid": null, "rows": [ .............
- Segunda API:
curl --location --request GET 'http://my-first-api-trucker./api/v1/jobs/postgres2' \ --header 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' Response: { "reqCompleted": true, "date": "2021-09-05T22:03:58.389Z", "reqID": "req-35", "data": { "command": "SELECT", "rowCount": 185, "oid": null, "rows": [ { " .......
Para más información, mira Vídeo de descripción general de DataTrucker.IO.
Este artículo está adaptado de Blog de DataTrucker.IO y republicado con permiso.
type: string
type: object
- credentialname: db < cred name from step 8 >
job_timeout: 600
name: postgres2
restmethod: GET
script: select * from information_schema.tables < query you want to execute>
tenant: Admin
type: DB-Postgres
Type: Job
La especificación crea un nuevo microservicio para alojar la API, que tiene dos API en su ruta:
- postgres1:
- Obtenga la fecha actual y los parámetros de envío del usuario a SQL
- es una solicitud POST
- Desinfecte la entrada para las variables de entrada del usuario
userinput
- postgres2:
- Obtener una lista de mesas disponibles
- es una solicitud GET
[ Free download: Advanced Linux commands cheat sheet. ]
Ahora, busque el servicio:
Ahora que tiene una URL, pruébela.
El formato de la URL es el siguiente:
En el ejemplo anterior, creó dos JobDefinitions:
- postgres1 de tipo POST
- OBTENER tipo de postgres2
Paso 10: prueba tu API
Obtenga el token de inicio de sesión desde el punto final de inicio de sesión:
Ahora use el token de inicio de sesión con su API:
- Primera API:
- Segunda API:
Para más información, mira Vídeo de descripción general de DataTrucker.IO.
Este artículo está adaptado de Blog de DataTrucker.IO y republicado con permiso.
Un comentario