You can do both, write internal or external APIs with GraphQL or REST. On GraphQL maybe is better because already has Schema documentation that saves a lot of time on documenting the API. RPC fits best to a machine-to-machine case, but there are some downsides like the time to develop an API using it, time to document it.