Migration Gap Analysis (API V1 to API V2)
0 people liked this article
Overview
This section identifies functional and structural gaps between V1 (GraphQL) and V2 (REST).
It helps you:
- Understand what changes in behavior and structure
- Identify required code changes
- Anticipate migration risks
- Plan mitigation strategies
API V2 has feature parity at launch, but implementation patterns differ significantly.
Gap Categories
Each resource is evaluated across:
| Category | Description |
|---|---|
| Structure | Response shape differences |
| Field Mapping | Naming and availability changes |
| Relationships | Nested vs flattened |
| Querying | Filtering, sorting, pagination |
| Operations | CRUD differences |
| Migration Impact | Required developer changes |
Migration Resource Summary
| Resource | Effort | Risk |
|---|---|---|
| Accounts | Low-Medium | 🟡 |
| Sites | Medium | 🟡 |
| Services | High | 🔴 |
| Cases | High | 🔴 |
All Resources
Gap Summary
Category |
V1 (GraphQL) |
V2 (REST) |
Impact |
|---|---|---|---|
Structure |
Nested / One Query |
Flat / Multiple Endpoints |
Increased orchestration |
Pagination |
Custom / Implicit |
Standard (Offset, Limit) |
Must implement consistent pagination logic across all endpoints |
Filtering |
Query Variables |
Query Parameters |
Need refactoring of all filtering logic |
Resource: Account
Gap Summary
Category |
V1 (GraphQL) |
V2 (REST) |
Impact |
|---|---|---|---|
Structure |
Nested (viewer.account) |
Flat list (data[]) |
Medium |
Field Selection |
Flexible |
Fixed |
Low |
Relationships |
Implicit |
Explicit via endpoints |
Low |
Key Gaps
❗Gaps
| Gaps | GET: Retrieve Account Details |
|---|---|
| Nested Objects & Fields Removed | |
| Fields Removed | |
| Fields Renamed | |
| Fields Added |
|
➕ Enhancements
| V1 (GraphQL) | V2 (REST) |
|---|---|
|
|
|
Migration Action
- Update response parsing
- Implement pagination loop
- Adjust the data access layer
Resource: Sites
Gap Summary
Category |
V1 (GraphQL) |
V2 (REST) |
Impact |
|---|---|---|---|
Structure |
Nested |
Standalone + Scoped Endpoints |
Medium |
Relationships |
Inline |
Flattened |
Medium |
Key Gaps
❗Gaps
| Gaps | GET: Retrieve Account Details |
|---|---|
| Nested Objects & Fields Removed | |
| Fields Removed | |
| Fields Renamed |
|
| Fields Added |
|
➕ Enhancements
| V1 (GraphQL) | V2 (REST) |
|---|---|
|
|
|
Migration Action
- Replace nested queries with endpoint calls
- Update data model for flattened relationships
- Add filtering where needed
Resource: Services
Gap Summary
Category |
V1 (GraphQL) |
V2 (REST) |
Impact |
|---|---|---|---|
| Data Model | Order Centric (ORD-*) | Service Centric (SVC-*) | High |
Relationships |
Deep Nesting |
IDs + Partial Fields |
High |
Key Gaps
❗Gaps
| Gaps | GET: Retrieve Account Details |
|---|---|
| Nested Objects & Fields Removed |
|
| Fields Removed |
|
| Fields Renamed |
|
| Fields Added |
|
➕ Enhancements
| V1 (GraphQL) | V2 (REST) |
|---|---|
|
|
|
|
|
Migration Action
- Refactor data parsing logic
- Introduce additional API calls if needed
- Map renamed fields
- Validate data completeness
Resource: Cases
Gap Summary
Category |
V1 (GraphQL) |
V2 (REST) |
Impact |
|---|---|---|---|
Operations |
Mutation-based |
REST verbs (POST/GET/PATCH) |
High |
Response (Create) |
Returns full object |
Returns ID only |
High |
Retrieval |
Nested + array |
Direct resource |
Medium |
Workflow |
Single request |
Multi-step |
High |
Key Gaps
❗Mutation → REST Workflow
- V1: Create + return full object
- V2: Create → then retrieve
❗Additional Calls Required
- To retrieve case details: GET /v2/cases/{caseId}
- To retrieve case messages: GET /v2//cases/{caseId}/caseMessages
❗Gaps: Create Case & Retrieve Case Details
| Gaps | POST: Create Case | GET: Retrieve Case Details |
|---|---|---|
| Nested Objects & Fields Removed |
|
|
| Fields Removed |
|
|
| Fields Renamed |
|
|
| Fields Added |
|
❗Gaps: Send and Retrieve Case Messages
| Gaps | POST: Send Case Messages | GET: Retrieve Case Messages |
|---|---|---|
| Nested Objects & Fields Removed | ||
| Fields Removed | ||
| Fields Renamed |
|
|
| Fields Added |
|
❗Gaps: Update Case Details
| Gaps | PATCH: Update Case details |
|---|---|
| Nested Objects & Fields Removed | |
| Fields Removed | |
| Fields Renamed |
|
| Fields Added |
|
➕ Enhancements
| V1 (GraphQL) | V2 (REST) |
|---|---|
|
|
|
Attachments
|
|
|
Migration Actions
- Split create + fetch logic
- Update response handling
- Add additional API calls for full case details and messages
- Refactor workflows
Helpful Links
Popular Articles
-
What is the Support process for managing and handling cases?
2 people say this guide was helpful
-
How to create a new case in expereoOne?
16 people say this guide was helpful
-
Where can I find the Reason for Outage (RFO) for an Incident Cases?
0 people say this guide was helpful
-
How can I contact Expereo Support?
9 people say this guide was helpful