This question has been asked multiple times, so I guess we should address it here.
While the duplicative sustaining effort between the GraphQL and REST APIs would be nice to eliminate, Meshery’s function as an extendable platform is furthered when integrating systems are offered choice of API style. Platform extensibility is one reason why both sets of APIs are supported.
Another reason that both sets of APIs are supported is nestled in Meshery’s history of first implementing a set of REST APIs, and subsequently, finding need to support a GraphQL API given the visual topology, MeshMap. Both the need for cross-resource queries and an ever-present subscription to stream real-time updates drove the maintainer team to implementing Meshery’s GraphQL APIs.
mesheryctl currently (v0.5.x) solely uses Meshery’s REST APIs. While Meshery UI is using a mix of REST and GraphQL. Looking forward, Meshery UI will use more and more GraphQL, ultimately, largely or entirely displacing Meshery UI use of its REST API.