IMO this depends who is the target user of the API.<p>If you are building an API for yourself or your company (for example, you are building the backend API for a Vue.js front end app to consume) then GraphQL is a very fine choice for reasons like ease/speed of adding new features to your API, concise single-fetches by the client consumer, and even the possibility of client with reactive subscription to a GraphQL query.<p>On the other hand, if you are publishing an API with the intention of enabling mass consumption by a large number of external customers, then begin by offering them a REST API for it’s ubiquity and familiarity. Once the REST API is built then you consider offering a GraphQL API.<p>It would be interesting to aggregate statistics from companies who offer <i>both</i> REST and GraphQL API’s and compare the popularity / adoption rates of each option, by their customers.
REST. It's been around for a long time, is well-understood and simple.<p>Don't introduce the extra complexity of GraphQL unless its advantages (which heavily depend on your use case) outweigh the drawbacks (the extra complexity is a big one).