GraphQL with Apollo

Build flexible APIs with GraphQL and Apollo Server/Client ecosystem

# Graphql Apollo

This document provides comprehensive guidelines for graphql apollo development and best practices.

---

## GraphQL Fundamentals

1. **Schema**
   - Schema definition with SDL (Schema Definition Language)
   - Implement proper schema definition with sdl (schema definition language)
   - Follow best practices for optimal results

2. **Query,**
   - Query, Mutation, and Subscription operations
   - Implement proper query, mutation, and subscription operations
   - Follow best practices for optimal results

3. **Scalar**
   - Scalar types and custom scalars
   - Implement proper scalar types and custom scalars
   - Follow best practices for optimal results

4. **Object**
   - Object types and interfaces
   - Implement proper object types and interfaces
   - Follow best practices for optimal results

5. **Input**
   - Input types and enums
   - Implement proper input types and enums
   - Follow best practices for optimal results

---

## Schema Design

6. **Schema-first**
   - Schema-first vs code-first approaches
   - Implement proper schema-first vs code-first approaches
   - Follow best practices for optimal results

7. **Type**
   - Type relationships and connections
   - Implement proper type relationships and connections
   - Follow best practices for optimal results

8. **Pagination**
   - Pagination patterns (cursor-based, offset)
   - Implement proper pagination patterns (cursor-based, offset)
   - Follow best practices for optimal results

9. **Union**
   - Union types for polymorphic data
   - Implement proper union types for polymorphic data
   - Follow best practices for optimal results

10. **Directive**
   - Directive usage for schema enhancement
   - Implement proper directive usage for schema enhancement
   - Follow best practices for optimal results

---

## Resolvers

11. **Resolver**
   - Resolver function implementation
   - Implement proper resolver function implementation
   - Follow best practices for optimal results

12. **Context**
   - Context object for request data
   - Implement proper context object for request data
   - Follow best practices for optimal results

13. **Parent-child**
   - Parent-child resolver relationships
   - Implement proper parent-child resolver relationships
   - Follow best practices for optimal results

14. **Async**
   - Async resolver patterns
   - Implement proper async resolver patterns
   - Follow best practices for optimal results

15. **Error**
   - Error handling in resolvers
   - Implement proper error handling in resolvers
   - Follow best practices for optimal results

---

## Apollo Server

16. **Server**
   - Server setup and configuration
   - Implement proper server setup and configuration
   - Follow best practices for optimal results

17. **Middleware**
   - Middleware integration
   - Implement proper middleware integration
   - Follow best practices for optimal results

18. **Plugin**
   - Plugin system utilization
   - Implement proper plugin system utilization
   - Follow best practices for optimal results

19. **Schema**
   - Schema stitching and federation
   - Implement proper schema stitching and federation
   - Follow best practices for optimal results

20. **Subscription**
   - Subscription implementation with WebSockets
   - Implement proper subscription implementation with websockets
   - Follow best practices for optimal results

---

## Data Sources

21. **REST**
   - REST API integration with RESTDataSource
   - Implement proper rest api integration with restdatasource
   - Follow best practices for optimal results

22. **Database**
   - Database integration patterns
   - Implement proper database integration patterns
   - Follow best practices for optimal results

23. **Caching**
   - Caching strategies with DataLoader
   - Implement proper caching strategies with dataloader
   - Follow best practices for optimal results

24. **Batch**
   - Batch loading for N+1 problem prevention
   - Implement proper batch loading for n+1 problem prevention
   - Follow best practices for optimal results

25. **Custom**
   - Custom data source implementation
   - Implement proper custom data source implementation
   - Follow best practices for optimal results

---

## Authentication & Authorization

26. **JWT**
   - JWT token validation
   - Implement proper jwt token validation
   - Follow best practices for optimal results

27. **Context-based**
   - Context-based authentication
   - Implement proper context-based authentication
   - Follow best practices for optimal results

28. **Field-level**
   - Field-level authorization
   - Implement proper field-level authorization
   - Follow best practices for optimal results

29. **Role-based**
   - Role-based access control
   - Implement proper role-based access control
   - Follow best practices for optimal results

30. **Schema**
   - Schema directive authorization
   - Implement proper schema directive authorization
   - Follow best practices for optimal results

---

## Apollo Client

31. **Client**
   - Client setup and configuration
   - Implement proper client setup and configuration
   - Follow best practices for optimal results

32. **Query**
   - Query execution with useQuery
   - Implement proper query execution with usequery
   - Follow best practices for optimal results

33. **Mutation**
   - Mutation handling with useMutation
   - Implement proper mutation handling with usemutation
   - Follow best practices for optimal results

34. **Subscription**
   - Subscription management
   - Implement proper subscription management
   - Follow best practices for optimal results

35. **Local**
   - Local state management
   - Implement proper local state management
   - Follow best practices for optimal results

---

## Caching

36. **Apollo**
   - Apollo Client InMemoryCache
   - Implement proper apollo client inmemorycache
   - Follow best practices for optimal results

37. **Cache**
   - Cache policies and fetch policies
   - Implement proper cache policies and fetch policies
   - Follow best practices for optimal results

38. **Cache**
   - Cache updates after mutations
   - Implement proper cache updates after mutations
   - Follow best practices for optimal results

39. **Optimistic**
   - Optimistic updates
   - Implement proper optimistic updates
   - Follow best practices for optimal results

40. **Cache**
   - Cache persistence
   - Implement proper cache persistence
   - Follow best practices for optimal results

---

## Error Handling

41. **GraphQL**
   - GraphQL error formatting
   - Implement proper graphql error formatting
   - Follow best practices for optimal results

42. **Client-side**
   - Client-side error handling
   - Implement proper client-side error handling
   - Follow best practices for optimal results

43. **Error**
   - Error boundaries in React
   - Implement proper error boundaries in react
   - Follow best practices for optimal results

44. **Network**
   - Network error recovery
   - Implement proper network error recovery
   - Follow best practices for optimal results

45. **Partial**
   - Partial error responses
   - Implement proper partial error responses
   - Follow best practices for optimal results

---

## Performance Optimization

46. **Query**
   - Query optimization and analysis
   - Implement proper query optimization and analysis
   - Follow best practices for optimal results

47. **DataLoader**
   - DataLoader for batch loading
   - Implement proper dataloader for batch loading
   - Follow best practices for optimal results

48. **Query**
   - Query complexity analysis
   - Implement proper query complexity analysis
   - Follow best practices for optimal results

49. **Persisted**
   - Persisted queries
   - Implement proper persisted queries
   - Follow best practices for optimal results

50. **Automatic**
   - Automatic persisted queries (APQ)
   - Implement proper automatic persisted queries (apq)
   - Follow best practices for optimal results

---

## Testing

51. **Schema**
   - Schema testing with graphql-tools
   - Implement proper schema testing with graphql-tools
   - Follow best practices for optimal results

52. **Resolver**
   - Resolver unit testing
   - Implement proper resolver unit testing
   - Follow best practices for optimal results

53. **Integration**
   - Integration testing with test server
   - Implement proper integration testing with test server
   - Follow best practices for optimal results

54. **Client-side**
   - Client-side testing with MockedProvider
   - Implement proper client-side testing with mockedprovider
   - Follow best practices for optimal results

55. **End-to-end**
   - End-to-end testing
   - Implement proper end-to-end testing
   - Follow best practices for optimal results

---

## Real-time Features

56. **Subscription**
   - Subscription implementation
   - Implement proper subscription implementation
   - Follow best practices for optimal results

57. **WebSocket**
   - WebSocket transport
   - Implement proper websocket transport
   - Follow best practices for optimal results

58. **Real-time**
   - Real-time data synchronization
   - Implement proper real-time data synchronization
   - Follow best practices for optimal results

59. **Live**
   - Live query alternatives
   - Implement proper live query alternatives
   - Follow best practices for optimal results

60. **Push**
   - Push notification integration
   - Implement proper push notification integration
   - Follow best practices for optimal results

---

## Development Tools

61. **GraphQL**
   - GraphQL Playground for testing
   - Implement proper graphql playground for testing
   - Follow best practices for optimal results

62. **Apollo**
   - Apollo Studio for monitoring
   - Implement proper apollo studio for monitoring
   - Follow best practices for optimal results

63. **Schema**
   - Schema registry and versioning
   - Implement proper schema registry and versioning
   - Follow best practices for optimal results

64. **Performance**
   - Performance monitoring
   - Implement proper performance monitoring
   - Follow best practices for optimal results

65. **Error**
   - Error tracking and analytics
   - Implement proper error tracking and analytics
   - Follow best practices for optimal results

---

## Summary Checklist

- [ ] Core principles implemented
- [ ] Best practices followed
- [ ] Performance optimized
- [ ] Security measures in place
- [ ] Testing strategy implemented
- [ ] Documentation completed
- [ ] Monitoring configured
- [ ] Production deployment ready

---

Follow these comprehensive guidelines for successful graphql apollo implementation.
GraphQL with Apollo - Cursor IDE AI Rule