* This would be assuming current technologies (or those that are likely to be usable in production in the next 3 to 6 months).
* Want to be usable by a wide range of clients that may be outside of the control of the API creator.
* Normal caveats about security, maintainability, etc.
* Assume a Web API.<p>Edit: added assumption about Web API.
Depends on what does it need to do, but you most probably will need a regular
RPC instead of trivial CRUD (REST) or mostly data query (GraphQL). Though RPC
is not fancy nor sexy, so most web developers this days won't even look at
that.