Have you looked into goa design[1]? You define your services with a contract via their DSL and it generates all code for you as well; has some nice validation options out of the box.
- similar to grpc gateway you just need to conform to the generated code’s service interface.
I believe it supports, http, websocket and grpc.