Files
2021-10-27 21:47:35 +05:30

2.6 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7fb2367417b2b2512bf6 Obtén la entrada de parámetros de consulta del cliente 2 301512 get-query-parameter-input-from-the-client

--description--

Otra forma común de obtener la entrada del cliente es codificando los datos después de la ruta, usando una cadena de consulta. La cadena de consulta está delimitada por un signo de interrogación (?), e incluye parejas de campo=valor. Cada pareja está separada por un ampersand (&). Express puede analizar los datos de la cadena de consulta, y llenar el objeto req.query. Algunos caracteres, como el porcentaje (%), no pueden estar en URLs y tienen que ser codificados en un formato diferente antes de poder enviarlos. Si usas la API desde JavaScript, puedes usar métodos específicos para codificar/decodificar estos caracteres.

route_path: '/library'
actual_request_URL: '/library?userId=546&bookId=6754'
req.query: {userId: '546', bookId: '6754'}

--instructions--

Construye un endpoint para el API, montado en GET /name. Responde con un documento JSON, tomando la estructura { name: 'firstname lastname'}. Los parámetros del nombre y apellido deben codificarse en una cadena de consulta, por ejemplo, ?first=firstname&last=lastname.

Nota: En el siguiente ejercicio va a recibir datos de una solicitud POST, a la misma ruta /name. Si lo deseas, puedes utilizar el método app.route(path).get(handler).post(handler). Esta sintaxis permite encadenar diferentes manejadores de verbos en la misma ruta. Puedes ahorrar un poco de escritura y tener un código más limpio.

--hints--

Prueba 1: El endpoint de tu API debe responder con el nombre correcto

(getUserInput) =>
  $.get(getUserInput('url') + '/name?first=Mick&last=Jagger').then(
    (data) => {
      assert.equal(
        data.name,
        'Mick Jagger',
        'Test 1: "GET /name" route does not behave as expected'
      );
    },
    (xhr) => {
      throw new Error(xhr.responseText);
    }
  );

Prueba 2: El endpoint de tu API debe responder con el nombre correcto

(getUserInput) =>
  $.get(getUserInput('url') + '/name?last=Richards&first=Keith').then(
    (data) => {
      assert.equal(
        data.name,
        'Keith Richards',
        'Test 2: "GET /name" route does not behave as expected'
      );
    },
    (xhr) => {
      throw new Error(xhr.responseText);
    }
  );

--solutions--

/**
  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.
*/