Skip to content

Commit e0b2ec1

Browse files
committed
8a tweaks
1 parent 5428d2c commit e0b2ec1

File tree

1 file changed

+23
-31
lines changed

1 file changed

+23
-31
lines changed

src/content/8/es/part8a.md

Lines changed: 23 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,6 @@ query {
182182
}
183183
```
184184

185-
186185
El último ejemplo muestra una consulta que requiere un parámetro y devuelve los detalles de una persona.
187186

188187
```js
@@ -251,10 +250,13 @@ Cree un nuevo proyecto npm con _npm init_ e instale las dependencias necesarias.
251250
npm install apollo-server graphql
252251
```
253252

253+
También cree un archivo `index.js` en el directorio raíz de su proyecto.
254+
254255
El código inicial es el siguiente:
255256

256257
```js
257-
const { ApolloServer, gql } = require('apollo-server')
258+
const { ApolloServer } = require('@apollo/server')
259+
const { startStandaloneServer } = require('@apollo/server/standalone')
258260

259261
let persons = [
260262
{
@@ -279,7 +281,7 @@ let persons = [
279281
},
280282
]
281283

282-
const typeDefs = gql`
284+
const typeDefs = `
283285
type Person {
284286
name: String!
285287
phone: String
@@ -309,7 +311,9 @@ const server = new ApolloServer({
309311
resolvers,
310312
})
311313

312-
server.listen().then(({ url }) => {
314+
startStandaloneServer(server, {
315+
listen: { port: 4000 },
316+
}).then(({ url }) => {
313317
console.log(`Server ready at ${url}`)
314318
})
315319
```
@@ -384,29 +388,18 @@ tiene un resolutor que devuelve <i>todos</i> los objetos de la matriz _persons_.
384388
() => persons
385389
```
386390

387-
### GraphQL-playground
388-
389-
Cuando Apollo-server se ejecuta en modo de desarrollo (_node filename.js_), inicia un [GraphQL-playground](https://www.apollographql.com/docs/apollo-server/testing/graphql-playground/) en la dirección [http://localhost:4000/graphql](http://localhost:4000/graphql). Esto es muy útil para un desarrollador y se puede utilizar para realizar consultas al servidor.
390-
391-
Probemos
392-
393-
![](../../images/8/1x.png)
394-
395-
A veces, Playground requiere que seas bastante pedante. Si la sintaxis de una consulta es incorrecta, el mensaje de error es bastante imperceptible y no sucede nada cuando presiona go.
391+
Lanza el servidor ejecutando en la terminal `node index.js`
396392

397-
![](../../images/8/2.png)
393+
### Apollo Studio Explorer
398394

399-
El resultado de la consulta anterior permanece visible en el lado derecho del campo de juegos incluso cuando la consulta actual es defectuosa.
395+
Cuando Apollo-server se ejecuta en modo de desarrollo, la página [http://localhost:4000/](http://localhost:4000/) tiene un botón _Query your server_ que nos lleva a [Apollo Studio Explorer](https://www.apollographql.com/docs/graphos/explorer/explorer/).
396+
Esto es muy útil para un desarrollador y se puede utilizar para realizar consultas al servidor.
400397

401-
Al señalar el lugar correcto en la línea con los errores, puede ver el mensaje de error
398+
Vamos a probarlo:
402399

403-
![](../../images/8/3.png)
404-
405-
Si el patio de juegos parece estar atascado, actualizar la página generalmente ayuda.
406-
407-
Al hacer clic en el texto <i>DOCS</i> a la derecha, la zona de juegos muestra el esquema GraphQL del servidor.
400+
![](../../images/8/1x.png)
408401

409-
![](../../images/8/4e.png)
402+
Al lado izquierdo el navegador muestra la documentación de la API que se ha generado automáticamente a partir del esquema.
410403

411404
### Parámetros de un resolutor
412405

@@ -702,7 +695,7 @@ Los errores de esas reglas son manejados por [el mecanismo de manejo de errores
702695
Bloqueemos agregar el mismo nombre al directorio telefónico varias veces:
703696

704697
```js
705-
const { ApolloServer, UserInputError, gql } = require('apollo-server') // highlight-line
698+
const { GraphQLError } = require('graphql') // highlight-line
706699

707700
// ...
708701

@@ -712,8 +705,11 @@ const resolvers = {
712705
addPerson: (root, args) => {
713706
// highlight-start
714707
if (persons.find(p => p.name === args.name)) {
715-
throw new UserInputError('Name must be unique', {
716-
invalidArgs: args.name,
708+
throw new GraphQLError('Name must be unique', {
709+
extensions: {
710+
code: 'BAD_USER_INPUT',
711+
invalidArgs: args.name
712+
}
717713
})
718714
}
719715
// highlight-end
@@ -728,7 +724,7 @@ const resolvers = {
728724

729725
Entonces, si el nombre que se agregará ya existe en la agenda, arroje el error _UserInputError_.
730726

731-
![](../../images/8/6x.png)
727+
![](../../images/8/6new.png)
732728

733729
El código actual de la aplicación se puede encontrar en [Github](https://github.com/fullstack-hy2020/graphql-phonebook-backend/tree/part8-2), rama <i>part8-2</i>.
734730

@@ -910,15 +906,11 @@ La respuesta se ve como
910906

911907
En en algunos casos, puede resultar beneficioso nombrar las consultas. Este es el caso especialmente cuando las consultas o mutaciones tienen [parámetros](https://graphql.org/learn/queries/#variables). Pronto entraremos en los parámetros.
912908

913-
Si hay varias consultas, Playground le pide que elija cuál de ellas ejecutar:
914-
915-
![](../../images/8/7.png)
916-
917909
</div>
918910

919911
<div class="tasks">
920912

921-
### Ejercicios 8.1.-8.7.
913+
### Ejercicios 8.1.-8.7
922914

923915
A través de los ejercicios, implementaremos un backend GraphQL para una pequeña biblioteca.
924916
Comience con [este archivo](https://github.com/fullstack-hy2020/misc/blob/master/library-backend.js). ¡Recuerde _npm init_ e instalar dependencias!

0 commit comments

Comments
 (0)