AIP is a great start but I hope people extend the ideas here a little more. A lot of this is centered around conventions that make sense to humans and to automated API generators (see Long Running Operations for an example of this).<p>I hope at some point someone builds more gRPC-specific API recommendations that includes streaming and ways to do a better bulk data transfers. (ex: stream-with-filters)<p>However, applying most of these proposals has improved APIs I've worked with and written.
Rest is great, but. We have something similar where I work and it has done great things for API consistency. But the efficiency of resulting implementations is not good. We have no solution for simple task oriented apis like change-password. In these cases rest is fugly.
I'm still looking for some good API guidelines for rpc that are not resource oriented and don't accidentally result in hundreds of new methods.
We need similar guidelines for distributed Application Development (in the lines of OAM - <a href="https://oam.dev/" rel="nofollow">https://oam.dev/</a> or <a href="https://dapr.io" rel="nofollow">https://dapr.io</a>)
I'm a crazy person who doesn't really use the "standard" functions for my APIs.<p>Instead I revolve around getIdAndFreshnessList(filter) and getItems(ids).<p>I've built tools to store items locally, and check if the id is cached and the date is fresh, and only request things that need updating.<p>I'm digging myself into a hole of being "too different" again. This is just another convention I'll be judged negatively against.