Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- RxCocoa
- Clean Code
- ribs
- Xcode
- rxswift
- 애니메이션
- Protocol
- map
- UITextView
- Observable
- 스위프트
- ios
- Refactoring
- 리펙터링
- collectionview
- clean architecture
- 클린 코드
- Human interface guide
- swift documentation
- combine
- MVVM
- 리팩토링
- HIG
- 리펙토링
- SWIFT
- UICollectionView
- swiftUI
- tableView
- uiscrollview
- uitableview
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 1. GraphQL, Apollo - 개념 본문
1. GraphQL - 개념
3. GraphQL - Apollo 모델 생성 (generate model)
4. GraphQL - Apollo의 request pipeline, Interceptor, token, header
5. GraphQL - Apollo의 fetch 예제 (Pagination)
GraphQL
- facebook에서 API를 위해 만든 쿼리 언어
- Endpoint를 하나로하여 API정의를 단순화
- RESTful vs GrphQL
RESTful | GraphQL |
* Resource마다 Endpoint가 다 다름 | * Endpoint는 오직 한 개 |
* 클라이언트가 필요한 데이터를 각 Resource 종류별로 요청 (요청 횟수가 느는 단점이 존재) | * 필요한 데이터를 Query에 넣어서 한 번만 호출하여 원하는 리소스 획득 |
* Request, Response가 정해져 있음 (HTTP caching 이점) | * Request, Response가 정해져 있지 않음 |
GraphQL의 이점
- overfetching, underfetching 방지
- overfetching: REST로 API 요청 시, 현재 필요하지 않은 필드도 같이 내려오는 경우
- underfetching: REST로 API 요청 시, splash화면에서 config, user 관련 정보를 얻기 위해 여러가지 API를 하나씩 순차적으로 호출하는 경우
- 하나의 Endpoint만을 사용하여 단순화
GraphQL 사용 방법
- fields와 arguments로 구성
- operation과 variable
- operation type: query(읽기 요청), mutation(수정 요청), subscription(실시간 데이터 조회)
- query와 mutation은 HTTP 프로토콜 사용
- subscription은 Web Socket 프로토콜 사용
- operation name
- variable definitions
- operation type: query(읽기 요청), mutation(수정 요청), subscription(실시간 데이터 조회)
Fragment
- query의 일부분을 재활용 가능한 단위로 나누어 놓은 것
- Fragment name은 GraphQL 문서 내에서 고유한 이름
* 참고
https://www.apollographql.com/blog/graphql/basics/the-anatomy-of-a-graphql-query/
https://medium.com/free-code-camp/so-whats-this-graphql-thing-i-keep-hearing-about-baf4d36c20cf
https://www.apollographql.com/blog/graphql/basics/graphql-vs-rest/
'iOS framework' 카테고리의 다른 글
Comments