👨🏻💻 Bloque de código
El bloque de código
es un bloque versátil que se puede usar para escribir código en diferentes lenguajes. En este caso, lo usaremos para realizar solicitudes.
🏳️ Banderas
Las banderas son la forma de especificar los parámetros de nuestra solicitud y también el formato en el que queremos nuestra respuesta.
Bandera | Valor predeterminado |
---|---|
url | |
method | GET |
body | |
headers | |
show | ALL |
req-uuid | |
disabled | |
save-as |
url
Es la única bandera obligatoria. Especifica la URL de la solicitud. Se pueden utilizar variables definidas en el frontmatter
.
```req
# un comentario
url: https://jsonplaceholder.typicode.com/users/{{this.id}}
```
Donde {{this.id}}
es una variable (id
) definida en el frontmatter.
method
Especifica el método de solicitud. El valor predeterminado es GET
y los valores disponibles son:
- GET
- POST
- PUT
- DELETE
```req
url: https://jsonplaceholder.typicode.com/posts
method: post
```
body
Especifica el cuerpo de la solicitud. El valor predeterminado es un objeto vacío. Los datos deben estar en formato JSON separando las claves y valores con dos puntos y espacio. Se pueden utilizar variables definidas en el frontmatter
.
```req
url: https://jsonplaceholder.typicode.com/posts
method: post
body: {"title": {{this.title}}, "body": "bar", "userId": 1}
```
Donde {{this.title}}
es una variable (title
) definida en el frontmatter.
headers
Especifica los encabezados de la solicitud. El valor predeterminado es un objeto vacío. Los datos deben estar en formato JSON separando las claves y valores con dos puntos y espacio. Se pueden utilizar variables definidas en el frontmatter
.
```req
url: https://jsonplaceholder.typicode.com/posts
method: post
headers: {"Content-type": "application/json; charset=UTF-8"}
```
show
Especifica los datos de respuesta que se van a mostrar. Ver ejemplos de JSONPath, o prueba la herramienta online de jsonpath-plus.
```req
url: https://api.chess.com/pub/player/hikaru/stats
show: $['chess_daily']['last']['rating']
```
Se pueden mostrar múltiples resultados usando []
.
```req
url: https://api.chess.com/pub/player/hikaru/stats
show: $.chess_daily[last,best].rating
```
También es posible iterar sobre un arreglo. El siguiente ejemplo muestra la ciudad de todos los usuarios.
```req
url: https://jsonplaceholder.typicode.com/users
show: $..address.city
```
También es posible iterar sobre un número especificado de elementos del arreglo.
```req
url: https://jsonplaceholder.typicode.com/users
show: $..[:3].address.city
```
También es posible iterar sobre un rango especificado de índices del arreglo.
```req
url: https://jsonplaceholder.typicode.com/users
show: $..[3,2,6].address.city
```
Puedes acceder al último elemento usando (@.length-1)
o simplemente [-1:]
.
```req
url: https://api.modrinth.com/v2/project/distanthorizons
show: $.game_versions[(@.length-1)]
```
Para acceder a multiples resultados podemos usar:
```req
url: http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=rooyca&api_key=API_KEY&format=json&limit=4
show: $..recenttracks.track[0:][streamable,name,artist]
```
req-uuid
Especifica el ID con la que se almacenará la solicitud. Esto es útil cuando queremos almacenar la respuesta en localStorage
y usarla en otros bloques o notas.
```req
url: https://jsonplaceholder.typicode.com/users/1
show: $.name
req-uuid: name
```
Las respuestas almacenadas se pueden ver usando el req-uuid
con la bandera disabled
(que no activará una nueva solicitud).
```req
url: https://jsonplaceholder.typicode.com/users/1
req-uuid: name
disabled
```
Las respuestas también se pueden ver usando dataview.
```dataview
dv.paragraph(localStorage.getItem("req-name"))
```
Es obligatorio usar req-
antes de lo que sea que hayas definido en la bandera req-uuid
.
Para eliminar respuestas de localStorage, ejecuta:
```dataview
localStorage.removeItem("req-name")
```
Para eliminar todas las respuestas, ve a configuraciones y haz clic sobre la respuesta que quieras eliminar.
disabled
Deshabilita la solicitud. El codeblock no se ejecutará.
```req
url: https://jsonplaceholder.typicode.com/users/1
show: $.name
req-uuid: name
disabled
```
save-as
Especifica la ruta para guardar la respuesta. Guardará toda la respuesta. Se requiere una extensión de archivo. No creará directorios.
```req
url: https://jsonplaceholder.typicode.com/posts/1
save-as: posts/1.json
```
auto-update
El codeblock se actualizará de manera automatica cada que sea posible. Esto solo es necesario cuando la bandera req-uuid
está precente, porque el comportamiento predeterminado del codeblock es ejecutarse cada vez que se carga la nota.
```req
url: https://jsonplaceholder.typicode.com/posts/1
req-uuid: firstPost
auto-update
save-as: posts/1.json
```