-
Notifications
You must be signed in to change notification settings - Fork 2
[React] GraphQL, axios
Kim Hyewon edited this page Jun 14, 2022
·
4 revisions
- μμ²νλ dataλ₯Ό μ μΈμ μΌλ‘ κΈ°μ νλ 쿼리. POSTλ‘ μμ²ν λ°μ΄ν°λ₯Ό λͺ¨λ λ΄μ ν μλ΅μΌλ‘ λλ €μ€.
- requestμ bodyλΆλΆμ μ΄λ€ μμ²μ νλκ°μ λ°λΌ μμ , μμ μμ²λ κ°λ₯ λͺ¨λ POSTλ‘ μμ²ν¨.
μ¬λ¬ depthμ μ 보λ₯Ό νλμ requestλ‘ μμ² κ°λ₯
query findRepos($login: String!) {
user(login: $login) { //λ³μ $loginμ μμ²ν λ λ΄μμ 보λ
id
login
name
location
avatar_url: avatarUrl //κ°μ Έμ€λ data aliasλ κ°λ₯
repositories(first: 100) {
totalCount
nodes {
name
}
}
}
}
GraphQLμ queryλ‘ μμ²ν μ λ³΄λ§ λ°ννλ€.
{
"data": {
"user": {
"id": "MDQ6VXNlcjc5NTkyNjA0",
"login": "hyew-kim",
"name": "Kim Hyewon",
"location": null,
"avatar_url": "https://avatars.githubusercontent.com/u/79592604?u=9cf807612ce5121bb2018cb4a85b3ff599357128&v=4",
"repositories": {
"totalCount": 33,
"nodes": [
{
"name": "prgrms-fejs"
},
{
"name": "42_piscine"
},
{
"name": "printf"
}, ...
]}
}
}
}
- Promise κΈ°λ°μ HTTP λΉλκΈ° ν΅μ λΌμ΄λΈλ¬λ¦¬, HTTP methodλͺ¨λ μ§μ
- μΈμ€ν΄μ€ 컀μ€ν μ€μ κ°λ₯
- μμ² μ·¨μ λ° νμμμ μ€μ κ°λ₯
bodyκ° μλ dataμμ± μ¬μ©
- axios.get(url,[,config])
- axios.post(url[,data[,config]])
- axios.delete(URL,[,config])
- axios.put(url[, data[, config]])
μλμΌλ‘ JSONνμμΌλ‘ λ³νλμ΄ responseκ° μ¨λ€. statusκ° 200μ΄κ³ statusTextκ° βOKβμ΄λ©΄ μ±κ³΅μ΄λ€.
{
// `data`λ μλ²κ° μ 곡ν μλ΅(λ°μ΄ν°)μ
λλ€.
data: {},
// `status`λ μλ² μλ΅μ HTTP μν μ½λμ
λλ€.
status: 200,
// `statusText`λ μλ² μλ΅μΌλ‘ λΆν°μ HTTP μν λ©μμ§μ
λλ€.
statusText: 'OK',
// `headers` μλ²κ° μλ΅ ν ν€λλ λͺ¨λ ν€λ μ΄λ¦μ΄ μλ¬Έμλ‘ μ 곡λ©λλ€.
headers: {},
// `config`λ μμ²μ λν΄ `axios`μ μ€μ λ ꡬμ±(config)μ
λλ€.
config: {},
// `request`λ μλ΅μ μμ±ν μμ²μ
λλ€.
// λΈλΌμ°μ : XMLHttpRequest μΈμ€ν΄μ€
// Node.js: ClientRequest μΈμ€ν΄μ€(리λλ μ
)
request: {}
}
- https://yamoo9.github.io/axios/guide/response-schema.html
- https://www.youtube.com/watch?v=oLQeFkhRqzU
- https://inpa.tistory.com/entry/AXIOS-π-μ€μΉ-μ¬μ©#axios-vs-fetch [π¨βπ» Dev Scroll:ν°μ€ν 리]
- https://axios-http.com/kr/docs/interceptors
- https://www.npmjs.com/package/graphql-request#usage