---
# System prepended metadata

title: Graphql pakages
tags: [Graphql]

---

---
title: Graphql pakages
tags: Graphql
--- 
# Graphql pakages


## Backend

---

### apollo-server

- create apollo server

### graphql-yoga

- easy way to setup graphql backend 

---

### graphql-middleware

- apply graphql middleware (with schema)


### graphql-shield

- A middleware deal with authentication for querry, mutation, ... for schema

### graphql-scalars

- Just Date generate?

---

### nexus

https://github.com/graphql-nexus/nexus

- A tool help grapql to define model(type), querry, mutation, ... on quickly and structurally way 
- define schema (typeDef + resolvers)
    - schema 
        - typeDefs
            - type (like model)
        - resolvers
            - querry
            - mutation
            - subscription
            - ...

---

### @prisma/client

- With [prisma](https://www.prisma.io/)
- For passing http request like the `Authorization` header ??

---

## Frontend
---

### @apollo/client

- Linking client to apollo server

### apollo-link-context

-  Use it can setup headers customly. like `Authorization: Bearer token`
-  New ApolloClient({ link })

---


## example project:

- https://github.com/barrystone/social_app
- https://github.com/barrystone/chatApp_react

