호기심에서 벗어나 GraphQL에 대해 알아보기 시작합니다. this article의 샘플을 기반으로 REST API 요청이 표시됩니다. 그것은 무국적입니까? 요청이없고 서버로부터 응답이 없다는 것을 의미합니까? 그렇다면 REST API보다 리소스가 얼마나 더 가볍습니까?GraphQL은 상태를 유지하지 않습니까?
답변
무국적입니까?
예, 서버가 요청을 올바르게 해석하기 위해 클라이언트 상태를 알 필요가없는 한, 필요한 모든 정보가 요청 자체 (헤더 및 본문)에 포함됩니다.
내게 REST API 요청 인 것 같습니다.
아마도 그렇지 않습니다. 그것은 하이퍼 미디어 제약에 완전히 실패합니다. (사양은 링크에 대한 참조가 없으므로 큰 힌트입니다.) "자원"에 대해 약간 혼란 스럽습니다. graphql.org
HTTP에서
는 일반적으로 핵심 개념으로 "자원"을 사용하여 REST과 연관됩니다. 반대로 GraphQL의 개념 모델은 엔티티 그래프입니다. 결과적으로 GraphQL의 엔티티는 URL로 식별되지 않습니다.
그래서 엔티티 그래프의 다른 하위 세트의 표현을 가리키는 여러 URI와 그래프의 모든 수정에 사용되는 단일 URI를 얻습니다. 유니폼 인터페이스 뒤에 이러한 "리소스"가 모두 단일 경로를 사용하여 구현됩니다.
REST is an architectural style "후보 아키텍처에서 유도하는 속성에 대해 선택합니다." GraphQL이 다른 속성 집합에 관심이있는 것처럼 보입니다. 즉 그들은 다른 종류의 문제를 해결하려고 노력하고 있다고 말합니다.
GraphQL은 클라이언트가 한 번의 요청으로 여러 리소스를 요청할 수있어 왕복 시간을 절약하고 클라이언트가 실제로 필요한 필드 만 필터링 할 수 있기 때문에 REST보다 효율적이라고도합니다. 따라서 하루가 끝날 때 길 찾기 요청이 비슷해 보이지만 더 강력한 쿼리 언어를 사용하면 클라이언트가 원하는 데이터를 정확히 얻을 수 있습니다.
네, REST와 마찬가지로 상태가 없습니다. 실제로 어떤 사람들은 GraphQL이 REST가 설명한 원래 요구 사항을 많이 충족한다고 말할 수도 있습니다.
- 1. 확인란이 상태를 유지하지 않습니다.
- 2. 뷰 상태를 유지하지 값
- 3. 확인란이 F5에서 상태를 유지하지 않습니다.
- 4. 환경 설정이 상태를 유지하지 않음
- 5. UserControl Textbox는 상태를 유지하지 않습니다.
- 6. 쿠키는 가치를 유지하지 않습니까?
- 7. Relay와 Graphql은 RESTful입니까?
- 8. 왜 양식이 크기를 유지하지 않습니까?
- 9. 왜이 CSS가 너비를 유지하지 않습니까?
- 10. std :: vector 데이터를 유지하지 않습니까?
- 11. Struts 세션 폼 bean이 상태를 유지하지 않음
- 12. 클래스를 추가하여 양식 요소에 상태를 유지하지 않음
- 13. MVVM Light e.Handled가 상태를 유지하지 않습니다.
- 14. Weld + JSF 2.0 @ConversationScoped가 상태를 유지하지 않습니다.
- 15. 마법사 컨트롤이 단계 사이에 상태를 유지하지 않습니다.
- 16. WCF 서비스가 클라이언트 호출간에 상태를 유지하지 않습니다.
- 17. Android Leanback FullWidthDetailsOverviewRowPresenter가 상태를 유지하지 않습니다.
- 18. UIViewController가 스토리 보드에 상태를 유지하지 않습니다.
- 19. 백본 이벤트 컨텍스트가 현재 상태를 유지하지 않음
- 20. 현재 상태를 유지하지 않는 하위 메뉴
- 21. 페이지 매김 상태를 유지하지 않고 장고 필터
- 22. graphql은 집계에 대한 필터를 지원합니까?
- 23. firebase 트랜잭션이 우선 순위를 유지하지 않습니까?
- 24. 왜 CALayer는 그 내용을 유지하지 않습니까?
- 25. 목록보기가 넘쳐 - 부모 크기를 유지하지 않습니까?
- 26. 배열에서 while 루프 외부에 값을 유지하지 않습니까?
- 27. Yii : 모델 특성은 형식을 유지하지 않습니까?
- 28. MFC의 GetClientRect 및 MoveWindow는 크기를 유지하지 않습니까?
- 29. 왜 싱글턴은 설정 값을 유지하지 않습니까?
- 30. 안드로이드 간단한 해시 맵은 값을 유지하지 않습니까?
다음과 같은 몇 가지 문제가 있습니다. 1. 사람들이 REST라고 부르는 많은 API는 HATEOAS 또는 링크를 지원하지 않으며, 사람들은이를 REST로 간주합니다. 2. GraphQL 쿼리는 GET 요청을 통해 전적으로 쿼리 매개 변수는 평상시처럼 캐시 될 수 있습니다. – stubailo
아직 관련 질문이 없습니다. 둘 다 HTTP를 기반으로하므로 Oauth 2.0과 OpendID 연결 토큰의 동일한 구현을 계속 사용할 수 있습니까? –
GET 방법 사용시 좋은 점; 나는 POST를 통해 모든 것이 진행되고 있다고 제안하는 무언가의 나쁜/오래된 복사본을 발견했습니다. – VoiceOfUnreason