Spanish corrections in "APIs and Microservices" challenges (#38029)
This commit is contained in:
@@ -4,6 +4,7 @@ title: Exercise Tracker
|
||||
localeTitle: Rastreador de ejercicios
|
||||
challengeType: 4
|
||||
isRequired: true
|
||||
forumTopicId: 301505
|
||||
---
|
||||
|
||||
## Description
|
||||
@@ -23,15 +24,15 @@ Inicie este proyecto en Glitch usando <a href='https://glitch.com/#!/import/gith
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: Puedo crear un usuario al publicar el nombre de usuario de los datos del formulario en /api/exercise/new-user y se devolverá un objeto con nombre de usuario y <code>_id</code> .
|
||||
- text: Puedo crear un usuario publicando el nombre de usuario de los datos del formulario en /api/exercise/new-user y se devolverá un objeto con el nombre de usuario y un <code>_id</code> .
|
||||
testString: ''
|
||||
- text: Puedo obtener un array de todos los usuarios al acceder a api/exercise/users con la misma información que cuando se crea un usuario.
|
||||
testString: ''
|
||||
- text: Puedo agregar un ejercicio a cualquier usuario publicando los datos del formulario ID de usuario (_id), descripción, duración y, opcionalmente, fechar en /api/exercise/add. Si no se proporciona la fecha, se utilizará la fecha actual. La aplicación devolverá el objeto de usuario con los campos de ejercicio agregados.
|
||||
- text: Puedo agregar un ejercicio a cualquier usuario publicando los datos del formulario ID de usuario (_id), descripción, duración y, opcionalmente, fecha en /api/exercise/add. Si no se proporciona la fecha, se utilizará la fecha actual. La aplicación devolverá el objeto de usuario con los campos de ejercicio agregados.
|
||||
testString: ''
|
||||
- text: Puedo obtener un registro de ejercicio completo de cualquier usuario accediendo a /api/exercise/log con un parámetro de userId (_id). La aplicación devolverá el objeto de usuario con el array de registros agregado y el conteo (recuento total de ejercicios).
|
||||
- text: Puedo obtener un registro de ejercicios completo de cualquier usuario accediendo a /api/exercise/log con un parámetro de userId (_id). La aplicación devolverá el objeto de usuario que contendrá el array de registros y el recuento total de ejercicios.
|
||||
testString: ''
|
||||
- text: Puedo obtener parte del registro de cualquier usuario pasando también parámetros opcionales de desde y hasta o límite. (Formato de fecha aaaa-mm-dd, límite = int)
|
||||
- text: Puedo obtener parte del registro de cualquier usuario pasando también parámetros opcionales como "desde" (from) y "hasta" (to) o "límite" (limit). (Formato de fecha aaaa-mm-dd, límite = int)
|
||||
testString: ''
|
||||
|
||||
```
|
||||
|
@@ -1,16 +1,17 @@
|
||||
---
|
||||
id: bd7158d8c443edefaeb5bd0f
|
||||
title: File Metadata Microservice
|
||||
localeTitle: Archivo de metadatos de microservicio
|
||||
localeTitle: Microservicio de metadatos de archivo
|
||||
challengeType: 4
|
||||
isRequired: true
|
||||
forumTopicId: 301506
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
Cree una aplicación de JavaScript de pila completa que sea funcionalmente similar a esto: <a href='https://purple-paladin.glitch.me/' target='_blank'>https://purple-paladin.glitch.me/</a> .
|
||||
Trabajar en este proyecto implicará que escriba su código en Glitch en nuestro proyecto de inicio. Después de completar este proyecto, puede copiar su URL de error público (en la página de inicio de su aplicación) en esta pantalla para probarlo. Opcionalmente, puede optar por escribir su proyecto en otra plataforma, pero debe ser visible públicamente para nuestras pruebas.
|
||||
Inicie este proyecto en Glitch usando <a href='https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-project-filemetadata/' target='_blank'>este enlace</a> o clone <a href='https://github.com/freeCodeCamp/boilerplate-project-filemetadata/'>este repositorio</a> en GitHub! Si utiliza Glitch, recuerde guardar el enlace a su proyecto en un lugar seguro.
|
||||
Cree una aplicación de JavaScript full stack que sea funcionalmente similar a esta: <a href='https://purple-paladin.glitch.me/' target='_blank'>https://purple-paladin.glitch.me/</a> .
|
||||
Trabajar en este proyecto implicará que escriba su código en nuestro proyecto de inicio de Glitch. Tras completar el proyecto puede copiar su URL pública de Glitch (en la página de inicio de su aplicación) en esta pantalla para probarlo. Opcionalmente puede optar por escribir su proyecto en otra plataforma, pero debe ser visible públicamente para nuestras pruebas.
|
||||
Inicie este proyecto en Glitch usando <a href='https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-project-filemetadata/' target='_blank'>este enlace</a> o clonando <a href='https://github.com/freeCodeCamp/boilerplate-project-filemetadata/'>este repositorio</a> en GitHub. Si utiliza Glitch, recuerde guardar el enlace a su proyecto en un lugar seguro.
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
|
@@ -1,16 +1,16 @@
|
||||
---
|
||||
id: bd7158d8c443edefaeb5bdff
|
||||
title: Request Header Parser Microservice
|
||||
localeTitle: Solicitud de encabezado Analizador de microservicio
|
||||
localeTitle: Microservicio de análisis de encabezados
|
||||
challengeType: 4
|
||||
isRequired: true
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
Cree una aplicación de JavaScript de pila completa que sea funcionalmente similar a esto: <a href='https://dandelion-roar.glitch.me/' target='_blank'>https://dandelion-roar.glitch.me/</a> .
|
||||
Trabajar en este proyecto implicará que escriba su código en Glitch en nuestro proyecto de inicio. Después de completar este proyecto, puede copiar su URL de error público (en la página de inicio de su aplicación) en esta pantalla para probarlo. Opcionalmente, puede optar por escribir su proyecto en otra plataforma, pero debe ser visible públicamente para nuestras pruebas.
|
||||
Inicie este proyecto en Glitch usando <a href='https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-project-headerparser/' target='_blank'>este enlace</a> o clone <a href='https://github.com/freeCodeCamp/boilerplate-project-headerparser/'>este repositorio</a> en GitHub! Si utiliza Glitch, recuerde guardar el enlace a su proyecto en un lugar seguro.
|
||||
Cree una aplicación de JavaScript full stack que sea funcionalmente similar a esta: <a href='https://dandelion-roar.glitch.me/' target='_blank'>https://dandelion-roar.glitch.me/</a> .
|
||||
Trabajar en este proyecto implicará que escriba su código en nuestro proyecto de inicio de Glitch. Tras completar el proyecto puede copiar su URL pública de Glitch (en la página de inicio de su aplicación) en esta pantalla para probarlo. Opcionalmente puede optar por escribir su proyecto en otra plataforma, pero debe ser visible públicamente para nuestras pruebas.
|
||||
Inicie este proyecto en Glitch usando <a href='https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-project-headerparser/' target='_blank'>este enlace</a> o clonando <a href='https://github.com/freeCodeCamp/boilerplate-project-headerparser/'>este repositorio</a> en GitHub. Si utiliza Glitch, recuerde guardar el enlace a su proyecto en un lugar seguro.
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
|
@@ -1,16 +1,17 @@
|
||||
---
|
||||
id: bd7158d8c443edefaeb5bdef
|
||||
title: Timestamp Microservice
|
||||
localeTitle: Marca de tiempo microservicio
|
||||
localeTitle: Microservicio de marcas de tiempo
|
||||
challengeType: 4
|
||||
isRequired: true
|
||||
forumTopicId: 301508
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
Cree una aplicación de JavaScript de pila completa que sea funcionalmente similar a esto: <a href='https://curse-arrow.glitch.me/' target='_blank'>https://curse-arrow.glitch.me/</a> .
|
||||
Trabajar en este proyecto implicará que escriba su código en Glitch en nuestro proyecto de inicio. Después de completar este proyecto, puede copiar su URL de error público (en la página de inicio de su aplicación) en esta pantalla para probarlo. Opcionalmente, puede optar por escribir su proyecto en otra plataforma, pero debe ser visible públicamente para nuestras pruebas.
|
||||
Inicie este proyecto en Glitch usando <a href='https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-project-timestamp/' target='_blank'>este enlace</a> o clone <a href='https://github.com/freeCodeCamp/boilerplate-project-timestamp/'>este repositorio</a> en GitHub! Si utiliza Glitch, recuerde guardar el enlace a su proyecto en un lugar seguro.
|
||||
Cree una aplicación de JavaScript full stack que sea funcionalmente similar a esta: <a href='https://curse-arrow.glitch.me/' target='_blank'>https://curse-arrow.glitch.me/</a> .
|
||||
Trabajar en este proyecto implicará que escriba su código en nuestro proyecto de inicio de Glitch. Tras completar el proyecto puede copiar su URL pública de Glitch (en la página de inicio de su aplicación) en esta pantalla para probarlo. Opcionalmente puede optar por escribir su proyecto en otra plataforma, pero debe ser visible públicamente para nuestras pruebas.
|
||||
Inicie este proyecto en Glitch usando <a href='https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-project-timestamp/' target='_blank'>este enlace</a> o clonando <a href='https://github.com/freeCodeCamp/boilerplate-project-timestamp/'>este repositorio</a> en GitHub. Si utiliza Glitch, recuerde guardar el enlace a su proyecto en un lugar seguro.
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
@@ -31,9 +32,9 @@ tests:
|
||||
testString: 'getUserInput => $.get(getUserInput(''url'') + ''/api/timestamp/1482624000000'').then(data => { assert.equal(data.unix, 1482624000000) ; }, xhr => { throw new Error(xhr.responseText); })'
|
||||
- text: Debe devolver el mensaje de error esperado para una fecha no válida
|
||||
testString: 'getUserInput => $.get(getUserInput(''url'') + ''/api/timestamp/this-is-not-a-date'').then(data => { assert.equal(data.error.toLowerCase(), ''invalid date'');}, xhr => { throw new Error(xhr.responseText); })'
|
||||
- text: 'Debería manejar un parámetro de fecha vacío y devolver la hora actual en formato unix'
|
||||
- text: 'Debería aceptar un parámetro de fecha vacío y devolver la hora actual en formato unix'
|
||||
testString: 'getUserInput => $.get(getUserInput(''url'') + ''/api/timestamp'').then(data => { var now = Date.now(); assert.approximately(data.unix, now, 20000) ;}, xhr => { throw new Error(xhr.responseText); })'
|
||||
- text: 'Debe manejar un parámetro de fecha vacío y devolver la hora actual en formato UTC'
|
||||
- text: 'Debe aceptar un parámetro de fecha vacío y devolver la hora actual en formato UTC'
|
||||
testString: 'getUserInput => $.get(getUserInput(''url'') + ''/api/timestamp'').then(data => { var now = Date.now(); var serverTime = (new Date(data.utc)).getTime(); assert.approximately(serverTime, now, 20000) ;}, xhr => { throw new Error(xhr.responseText); })'
|
||||
|
||||
```
|
||||
|
@@ -4,13 +4,14 @@ title: URL Shortener Microservice
|
||||
localeTitle: Microservicio de acortador de URL
|
||||
challengeType: 4
|
||||
isRequired: true
|
||||
forumTopicId: 301509
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
Cree una aplicación de JavaScript de pila completa que sea funcionalmente similar a esto: <a href='https://thread-paper.glitch.me/' target='_blank'>https://thread-paper.glitch.me/</a> .
|
||||
Trabajar en este proyecto implicará que escriba su código en Glitch en nuestro proyecto de inicio. Después de completar este proyecto, puede copiar su URL de error público (en la página de inicio de su aplicación) en esta pantalla para probarlo. Opcionalmente, puede optar por escribir su proyecto en otra plataforma, pero debe ser visible públicamente para nuestras pruebas.
|
||||
Inicie este proyecto en Glitch usando <a href='https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-project-urlshortener/' target='_blank'>este enlace</a> o clone <a href='https://github.com/freeCodeCamp/boilerplate-project-urlshortener/'>este repositorio</a> en GitHub! Si utiliza Glitch, recuerde guardar el enlace a su proyecto en un lugar seguro.
|
||||
Cree una aplicación de JavaScript full stack que sea funcionalmente similar a esta: <a href='https://thread-paper.glitch.me/' target='_blank'>https://thread-paper.glitch.me/</a> .
|
||||
Trabajar en este proyecto implicará que escriba su código en nuestro proyecto de inicio de Glitch. Tras completar el proyecto puede copiar su URL pública de Glitch (en la página de inicio de su aplicación) en esta pantalla para probarlo. Opcionalmente puede optar por escribir su proyecto en otra plataforma, pero debe ser visible públicamente para nuestras pruebas.
|
||||
Inicie este proyecto en Glitch usando <a href='https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-project-urlshortener/' target='_blank'>este enlace</a> o clonando <a href='https://github.com/freeCodeCamp/boilerplate-project-urlshortener/'>este repositorio</a> en GitHub. Si utiliza Glitch, recuerde guardar el enlace a su proyecto en un lugar seguro.
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
|
@@ -1,23 +1,32 @@
|
||||
---
|
||||
id: 587d7fb1367417b2b2512bf4
|
||||
title: Chain Middleware to Create a Time Server
|
||||
localeTitle: Cadena de middleware para crear un servidor de tiempo
|
||||
localeTitle: Encadenar middleware para crear un servidor de tiempo
|
||||
challengeType: 2
|
||||
forumTopicId: 301510
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
Middleware puede montarse en una ruta específica usando <code>app.METHOD(path, middlewareFunction)</code> . Middleware también puede ser encadenado dentro de la definición de ruta.
|
||||
Mira el siguiente ejemplo:
|
||||
<blockquote>app.get('/user', function(req, res, next) {<br> req.user = getTheUserSync(); // Hypothetical synchronous operation<br> next();<br>}, function(req, res) {<br> res.send(req.user);<br>})</blockquote>
|
||||
Este enfoque es útil para dividir las operaciones del servidor en unidades más pequeñas. Esto conduce a una mejor estructura de la aplicación y la posibilidad de reutilizar el código en diferentes lugares. Este enfoque también se puede utilizar para realizar una validación de los datos. En cada punto de la pila de middleware puede bloquear la ejecución de la cadena actual y pasar el control a funciones específicamente diseñadas para manejar errores. O puede pasar el control a la siguiente ruta coincidente, para manejar casos especiales. Veremos cómo en la sección avanzada de Express.
|
||||
En la ruta <code>app.get('/now', ...)</code> una función de middleware y el controlador final. En la función de middleware, debe agregar la hora actual al objeto de solicitud en la clave <code>req.time</code> . Puede usar la <code>new Date().toString()</code> . En el controlador, responda con un objeto JSON, tomando la estructura <code>{time: req.time}</code> .
|
||||
Sugerencia: la prueba no pasará si no encadena el middleware. Si monta la función en otro lugar, la prueba fallará, incluso si el resultado de salida es correcto.
|
||||
Un middleware puede montarse en una ruta específica usando <code>app.METHOD(path, middlewareFunction)</code> . Un middleware también puede ser encadenado dentro de la definición de ruta.
|
||||
Vea el siguiente ejemplo:
|
||||
|
||||
```js
|
||||
app.get('/user', function(req, res, next) {
|
||||
req.user = getTheUserSync(); // Operación síncrona hipotética
|
||||
next();
|
||||
}, function(req, res) {
|
||||
res.send(req.user);
|
||||
});
|
||||
```
|
||||
|
||||
Este enfoque es útil para dividir las operaciones del servidor en unidades más pequeñas. Esto conduce a una mejor estructura de la aplicación y a la posibilidad de reutilizar el código en diferentes lugares. Este enfoque también se puede utilizar para realizar validaciones de datos. En cada punto de la pila del middleware puede bloquear la ejecución de la cadena actual y pasar el control a funciones específicamente diseñadas para manejar errores. O puede pasar el control a la siguiente ruta coincidente, para manejar casos especiales. Veremos cómo en la sección avanzada de Express.
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id='instructions'>
|
||||
|
||||
En la ruta <code>app.get('/now', ...)</code> encadene una función de middleware y el controlador final. En la función de middleware debe agregar la hora actual al objeto de solicitud en la clave <code>req.time</code> . Puede usar <code>new Date().toString()</code> . En el controlador, responda con un objeto JSON, tomando la estructura <code>{time: req.time}</code> .
|
||||
Sugerencia: la prueba no pasará si no encadena el middleware. Si monta la función en otro lugar, la prueba fallará, incluso si el resultado de salida es correcto.
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
@@ -25,9 +34,9 @@ Sugerencia: la prueba no pasará si no encadena el middleware. Si monta la funci
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: El punto final / ahora debería tener middleware montado
|
||||
- text: El punto de ruta /now debería tener middleware montado
|
||||
testString: 'getUserInput => $.get(getUserInput(''url'') + ''/_api/chain-middleware-time'').then(data => { assert.equal(data.stackLength, 2, ''"/now" route has no mounted middleware''); }, xhr => { throw new Error(xhr.responseText); })'
|
||||
- text: El punto final / now debería devolver un tiempo que es de +/- 20 segundos a partir de ahora
|
||||
- text: El punto de ruta /now debería devolver un tiempo con una diferencia de +/- 20 segundos respecto al momento actual
|
||||
testString: 'getUserInput => $.get(getUserInput(''url'') + ''/_api/chain-middleware-time'').then(data => { var now = new Date(); assert.isAtMost(Math.abs(new Date(data.time) - now), 20000, ''the returned time is not between +- 20 secs from now''); }, xhr => { throw new Error(xhr.responseText); })'
|
||||
|
||||
```
|
||||
@@ -43,6 +52,10 @@ tests:
|
||||
<section id='solution'>
|
||||
|
||||
```js
|
||||
// solution required
|
||||
/**
|
||||
Backend challenges don't need solutions,
|
||||
because they would need to be tested against a full working project.
|
||||
Please check our contributing guidelines to learn more.
|
||||
*/
|
||||
```
|
||||
</section>
|
||||
|
Reference in New Issue
Block a user