Fundamentos de Arquitectura de Software: APIs, Bases de Datos y Protocolos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 3,76 KB
1. Definición de APIs y Servicios Web
A continuación, se presenta un ejemplo de especificación de API utilizando OpenAPI:
paths:
/api/users/{id}:
get:
summary: Obtiene un usuario por su ID
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'200':
description: Usuario encontrado con éxito
'404':
description: No encontrado
post:
summary: Crea un usuario
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
nombre:
type: string
responses:
'201':
description: Creado2. Formatos de Intercambio de Datos
XML
Ejemplo de estructura XML:
<grupo>
<usuario id="u101">
<nombre>Juan</nombre>
<edad>20</edad>
</usuario>
</grupo>JSON Schema
Validación de datos mediante JSON Schema:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"nombre": { "type": "string" },
"edad": { "type": "integer", "minimum": 0 },
"rol": { "type": "string", "enum": ["admin", "user"] }
},
"required": ["nombre", "edad"],
"additionalProperties": false
}3. Consultas en Bases de Datos NoSQL (MongoDB)
- Búsqueda con condiciones:
db.users.find({ edad: { $gte: 18, $lte: 30 }, ciudad: "Madrid" }) - Lógica OR y ordenamiento:
db.users.find({ $or: [{ rol: "admin" }, { activo: true }] }).sort({ edad: -1 }) - Modificaciones:
db.users.updateOne({ email: "[email protected]" }, { $set: { activo: false } }) db.users.updateOne({ nickname: "player1" }, { $push: { logros: "Primer Login" } })
4. Comparativa de Tecnologías de Comunicación
Existen diversos paradigmas para la comunicación entre sistemas:
- REST: Basado en texto/HTTP 1.1.
- GraphQL: Un solo endpoint flexible.
- gRPC: Binario de alto rendimiento, basado en RPC sobre HTTP/2 y Protocol Buffers.
Servicios Web: SOAP vs REST
- SOAP: Protocolo rígido, mensajes exclusivamente en XML (Envelope, Header, Body). Requiere contrato WSDL.
- REST: Estilo arquitectónico agnóstico al formato (JSON, XML). Utiliza OpenAPI/Swagger como contrato.
Modelo de Madurez de Richardson (REST)
- Nivel 0: Una sola URI y un método (POST).
- Nivel 1: Identificación de recursos mediante URIs.
- Nivel 2: Uso de verbos HTTP semánticos y códigos de estado.
- Nivel 3: HATEOAS (Hipermedios).
5. Gestión de Tráfico y Escalabilidad
- Rate-Limiting: Protección contra DoS mediante algoritmos como Token Bucket o Fixed/Sliding window.
- Escalabilidad: Scale Up (Vertical) vs Scale Out (Horizontal).
- Teorema CAP: Elección entre Consistencia (C), Disponibilidad (A) y Tolerancia a particiones (P).
6. Procesamiento XML
- DOM: Carga todo el árbol en RAM (bidireccional).
- SAX: Basado en eventos, secuencial, bajo consumo de memoria.
- Transformación: XSLT permite convertir XML a otros formatos.