You need all the same stuff with a REST API only instead of using tooling to codegen all the boilerplate you have to write it by hand (or use janky OpenAPI code generators which, in my experience, rarely work very well).
I am increasingly annoyed by protobuf as a standalone format but given the choice to create a new API using gRPC (where I can spend five minutes writing some proto files and then codegen all the boilerplate I need for both server and client in any mainstream language) and creating it as a REST API where I have to manually code all the boilerplate and decide between a zillion different ways of doing everything I will choose gRPC 100% of the time.
How exactly? If we take the simplest possible "hello world" service, then protoc generates all the code for a gRPC service without you having to manually type anything
Of course it does, starting with the protobufs and code generation. You say yourself in your very next reply:
"New tools sure, you need protoc or buf to build the bindings from the IDL, but what is the new DSL you need to learn?"
And the DSL is presumably protobuf, which you yourself are "increasingly annoyed" with.