Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • E ECMAscript-Typescript
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 11
    • Issues 11
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • imunnic
  • ECMAscript-Typescript
  • Wiki
  • Modulo 4

Modulo 4 · Changes

Page history
cambios en asincronía y uso de api authored Jan 30, 2026 by imunnic's avatar imunnic
Hide whitespace changes
Inline Side-by-side
Showing with 24 additions and 9 deletions
+24 -9
  • Modulo-4.md Modulo-4.md +24 -9
  • No files found.
Modulo-4.md
View page @ 818a8a9d
......@@ -15,18 +15,33 @@ setTimeout((): void => {
console.log('Datos recibidos del servidor');
}, 2000);
console.log('Petición enviada');
console.log('Fin de la petición');
```
> El flujo principal no se bloquea; la operación asíncrona se gestiona mediante el **Event Loop**.
> El flujo principal no se bloquea; la operación asíncrona se gestiona mediante el **Event Loop**. El **Event Loop** es el mecanismo que permite a Javascript (Typescript por herencia) ejecutar codigo en paralelo. Podría decirse que es un organizador de tareas o hilos.
Si se quisiera esperar a recibir los datos lo que habría que hacer es:
```ts
console.log('Iniciando petición...');
async function getDatos(): Promise<void> {
console.log('Iniciando petición...');
await retraso();
console.log('Datos recibidos del servidor');
console.log('Petición enviada');
}
getDatos();
```
---
## 2. Qué es una API REST
Una **API REST (Representational State Transfer)** permite la comunicación entre aplicaciones a través de **HTTP**. En una aplicación sanitaria, una API REST expone recursos como **personal, material, activaciones o inventario**.
Una **API REST (Representational State Transfer)** permite la comunicación entre aplicaciones a través de **HTTP**. En una aplicación de gestión de recursos, una API REST expone recursos como **recursos, solicitudes o activaciones**.
Las API REST intercambian datos en **formato JSON**, fácilmente mapeables a **interfaces TypeScript**.
Las API REST intercambian datos en **formato JSON**, fácilmente mapeables a **interfaces TypeScript**. Por qué
---
......@@ -71,7 +86,7 @@ const obj: RecursoDTO = JSON.parse(json);
```ts
async function obtenerRecursos(): Promise<RecursoDTO[]> {
const respuesta = await fetch('https://api.panacea.com/recursos');
const respuesta = await fetch('http://localhost:8080/panacea/rest/recursos');
if (!respuesta.ok) {
throw new Error(`Error HTTP: ${respuesta.status}`);
......@@ -98,7 +113,7 @@ obtenerRecursos()
```ts
async function cargarRecursos(): Promise<void> {
try {
const respuesta = await fetch('https://api.panacea.com/recursos');
const respuesta = await fetch('http://localhost:8080/panacea/rest/recursos');
const datos: RecursoDTO[] = await respuesta.json();
console.table(datos);
} catch (error) {
......@@ -115,7 +130,7 @@ cargarRecursos();
```ts
async function agregarRecurso(nuevo: RecursoDTO): Promise<RecursoDTO> {
const respuesta = await fetch('https://api.panacea.com/recursos', {
const respuesta = await fetch('http://localhost:8080/panacea/rest/recursos', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(nuevo),
......@@ -145,7 +160,7 @@ agregarRecurso({
```ts
async function actualizarRecurso(id: string, datos: Partial<RecursoDTO>): Promise<void> {
await fetch(`https://api.panacea.com/recursos/${id}`, {
await fetch(`http://localhost:8080/panacea/rest/recursos/${id}`, {
method: 'PATCH',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(datos),
......@@ -157,7 +172,7 @@ async function actualizarRecurso(id: string, datos: Partial<RecursoDTO>): Promis
```ts
async function eliminarRecurso(id: string): Promise<void> {
await fetch(`https://api.panacea.com/recursos/${id}`, {
await fetch(`http://localhost:8080/panacea/rest/recursos/${id}`, {
method: 'DELETE',
});
console.log('Recurso eliminado correctamente');
......
Clone repository

Índice

  • Inicio
  • Modulo 0. Instalaciones inciales
  • Modulo 1. Sitaxis básica
  • Modulo 2. Importaciones en Javascript
  • Modulo 3. Interacción con el BOM y con el DOM
    • Ejercicios
  • Modulo 4. Uso de servicios y API REST