이 셋은 서로 다른 세 가지 API 패러다임으로, 각각 다른 제약에 최적화되어 있다. 보편적 승자는 없다 — 올바른 선택은 소비자, 데이터 형태, 네트워크에 달려 있다.
한눈에 보는 셋
REST GraphQL gRPC
Style resources + HTTP single query graph RPC (call methods)
Transport HTTP/1.1, JSON HTTP, JSON HTTP/2, Protobuf (binary)
Fetching fixed endpoints client picks fields fixed methods
Schema optional (OpenAPI) strong, typed strong, .proto
Browser native, cacheable needs client lib limited (needs proxy)
REST
평범한 HTTP 위의 리소스 지향. public API, CRUD 서비스, 그리고 HTTP caching·보편성·단순함에서 이득을 보는 모든 것에 . 약점은 (필드 하나만 필요해도 전체를 받음)과 ( 문제: user를 가져온 뒤 각 order를 가져오려 반복).
