GraphQL is NOT a protocol; it uses REST. Same thing with Thrift. You are confusing TOOLS with PROTOCOLS.
Second, no one forces you to use OpenApi or Swagger. Many of us know and acknowledge they are crap; I myself got them to admit that they were static documents that didn't enforce ROLES and did not sync across your servers (https://flic.kr/p/2keNR8v).
I would also add that gRPC is problematic in working with ORM in the fact that you are creating an OBJECT for an OBJECT; ORM creates an object that can be cached and parsed whereas GRPC is creating an object which can be sent. These are not the same thing and will collide in the fact that what is returned of said OBJECT for a USER may not be the same for an ADMIN/EDITOR/etc.
And finally, HTTP/2 only works if you are using HTTP/2 all the way up to the server; REST can use HTTP/2 as well.