Skip to content

Commit a8db1e7

Browse files
authored
Merge pull request #2935 from minnaRon/patch-11
Fix
2 parents b09ede6 + a8c7161 commit a8db1e7

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/content/8/fi/osa8e.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ startStandaloneServer(server, {
345345
})
346346
```
347347

348-
startStandaloneServer ei kuitenkaan mahdollsita subscriptioiden lisäämistä sovellukseen, joten siirtymään järeämmän [expressMiddleware](https://www.apollographql.com/docs/apollo-server/api/express-middleware/) funktion käyttöön. Kuten funktion nimi jo vihjaa, kyseessä on Expressin middleware, eli sovellukseen on konfiguroitava myös Express jonka middlewarena GraphQL-server tulee toimimaan.
348+
startStandaloneServer ei kuitenkaan mahdollista subscriptioiden lisäämistä sovellukseen, joten siirrytään järeämmän [expressMiddleware](https://www.apollographql.com/docs/apollo-server/api/express-middleware/) funktion käyttöön. Kuten funktion nimi jo vihjaa, kyseessä on Expressin middleware, eli sovellukseen on konfiguroitava myös Express jonka middlewarena GraphQL-server tulee toimimaan.
349349

350350
Asennetaan Express:
351351

@@ -457,13 +457,13 @@ type Subscription {
457457

458458
Eli kun uusi henkilö luodaan, palautetaan henkilön tiedot kaikille tilaajille.
459459

460-
Asennetaan tarvittavast kirjastot:
460+
Asennetaan tarvittavat kirjastot:
461461

462462
```
463463
npm install graphql-ws ws @graphql-tools/schema
464464
```
465465

466-
Tiedosto <i>index.js</i> muuttuu seraavasti
466+
Tiedosto <i>index.js</i> muuttuu seuraavasti
467467

468468
```js
469469
// highlight-start
@@ -537,11 +537,11 @@ const start = async () => {
537537
start()
538538
```
539539

540-
GraphQL:n Queryt ja mutaatiot hoidetaan HTTP-protokollaa käyttäen. Tilausten osalta kommunikaatio tapahuu [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API)-yhteydellä.
540+
GraphQL:n Queryt ja mutaatiot hoidetaan HTTP-protokollaa käyttäen. Tilausten osalta kommunikaatio tapahtuu [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API)-yhteydellä.
541541

542542
Yllä oleva konfio luo palvelimeen HTTP-pyyntöjen kuuntelun rinnalle WebSocketeja kuuntelevan palvelun, jonka se sitoo palvelimen GraphQL-skeemaan. Määrittelyn toinen osa rekisteröi funktion, joka sulkee WebSocket-yhteyden palvelimen sulkemisen yhteydessä. Jos olet kiinnostunut tarkemmin konfiguraatioista, selittää Apollon [dokumentaatio](https://www.apollographql.com/docs/apollo-server/data/subscriptions) suhteellisen tarkasti mitä kukin koodirivi tekee.
543543

544-
Toisin kuin HTTP:n yhteydessä, WebSocketteja käyttäessä myös palvelin voi olla datan lähettämisessä aloitteellinen osapuoli. Näinollen WebSocketit sopivat hyvin GraphQL:n tilauksiin, missä palvelimen on pystyttävä kertomaan kaikille tietyn tilauksen tehneille tilausta vastaavan tapahtuman (esim. henkilön luominen) tapahtumisesta.
544+
Toisin kuin HTTP:n yhteydessä, WebSocketteja käyttäessä myös palvelin voi olla datan lähettämisessä aloitteellinen osapuoli. Näin ollen WebSocketit sopivat hyvin GraphQL:n tilauksiin, missä palvelimen on pystyttävä kertomaan kaikille tietyn tilauksen tehneille tilausta vastaavan tapahtuman (esim. henkilön luominen) tapahtumisesta.
545545

546546
Määritellylle tilaukselle _personAdded_ tarvitaan resolveri. Myös lisäyksen tekevää resolveria _addPerson_ on muutettava siten, että uuden henkilön lisäys aiheuttaa ilmoituksen tilauksen tehneille.
547547

@@ -623,7 +623,7 @@ pubsub.publish('PERSON_ADDED', { personAdded: person })
623623

624624
Koodirivin suoritus saa siis aikaan sen, että kaikille iteraattoriin <i>PERSON\_ADDED</i> rekisteröidyille clienteille lähtee WebSocketin avulla tieto luodusta käyttäjästä.
625625

626-
Tilauksia on mahdollista testata Apollo Exploreilla avulla seuraavasti:
626+
Tilauksia on mahdollista testata Apollo Explorerin avulla seuraavasti:
627627

628628
![](../../images/8/31x.png)
629629

@@ -636,7 +636,7 @@ subscription Subscription {
636636

637637
Kun tilauksen suorittavaa sinistä PersonAdded-painiketta painetaan, jää Explorer odottamaan tilaukseen tulevia vastauksia. Aina kun sovellukseen lisätään uusia käyttäjiä (joudut tekemään lisäyksen frontendista tai toisesta selainikkunasta), tulee tieto niistä Explorerin oikeaan reunaan.
638638

639-
Jos tilaus ei toimi, saatat tarkasta, että yhteysasetukset on määritelty oikein:
639+
Jos tilaus ei toimi, tarkasta, että yhteysasetukset on määritelty oikein:
640640

641641
![](../../images/8/35.png)
642642

@@ -788,7 +788,7 @@ const App = () => {
788788
}
789789
```
790790

791-
Ratkaisussa on kuitenkin pieni ongelma. Itse lisätty henkilö tulee nyt välimuistiin sekä renderöityy ruudulle kahteen kertaan, sillä myös komponentti PersonForm lisää uuden henkilön välimuistin.
791+
Ratkaisussa on kuitenkin pieni ongelma. Itse lisätty henkilö tulee nyt välimuistiin sekä renderöityy ruudulle kahteen kertaan, sillä myös komponentti PersonForm lisää uuden henkilön välimuistiin.
792792

793793
Ratkaistaan ongelma varmistamalla, että sama henkilö ei päädy välimuistiin kahteen kertaan:
794794

@@ -833,7 +833,7 @@ const App = () => {
833833
}
834834
```
835835

836-
Funktio _updateCache_ lisää uuden henkilön tiedot välimuistin queryn <i>allPersons</i> tallentamiin henkilöihin, mutta varmistaa kuitenkin funktion _uniqByName_ avulla, että yhden henkilön tiedot eivät tallennu välimuitiin useampaan kertaan.
836+
Funktio _updateCache_ lisää uuden henkilön tiedot välimuistin queryn <i>allPersons</i> tallentamiin henkilöihin, mutta varmistaa kuitenkin funktion _uniqByName_ avulla, että yhden henkilön tiedot eivät tallennu välimuistiin useampaan kertaan.
837837

838838
Funktiota _updateCache_ voidaan hyödyntää myös uuden henkilön lisäyksen yhteydessä tapahtuvassa välimuistin päivityksessä:
839839

@@ -1067,7 +1067,7 @@ query {
10671067

10681068
### Tehtävien palautus ja suoritusmerkinnän pyytäminen
10691069

1070-
Tämän osat palautetaan edellisistä osista poiketen [palautussovelluksessa](https://studies.cs.helsinki.fi/stats/courses/fs-graphql) omaan kurssi-instanasiinsa. Huomaa, että tarviset suoritukseen vähintään 22 tehtävää!
1070+
Tämän osat palautetaan edellisistä osista poiketen [palautussovelluksessa](https://studies.cs.helsinki.fi/stats/courses/fs-graphql) omaan kurssi-instanssiinsa. Huomaa, että tarviset suoritukseen vähintään 22 tehtävää!
10711071

10721072
Jos haluat suoritusmerkinnän, merkitse kurssi suoritetuksi:
10731073

0 commit comments

Comments
 (0)