Ошибка "cannot use msg as protoreflect.ProtoMessage value in return statement: msg does not implement protoreflect.ProtoMessage (missing method ProtoReflect)" возникает, когда в сгенерированном коде не объявлен метод ProtoReflect для сообщения.
В примере репозитория, который вы предоставили, используется старая версия grpc-gateway, которая не обновлена для последних версий gRPC и Protobuf. Для исправления этой ошибки вам потребуется обновить зависимости и использовать новую версию grpc-gateway.
Ниже приведены шаги, которые могут помочь вам решить эту проблему:
1. Обновите зависимости вашего проекта в файле go.mod. Выполните команду `go get -u` для обновления всех зависимостей. Убедитесь, что вы используете последние версии grpc и grpc-gateway.
2. Установите новую версию grpc-gateway, используя команду `go get github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway`. Это установит версию v2 grpc-gateway, которая обновлена для поддержки последних версий gRPC и Protobuf.
3. Повторно запустите команду protoc с флагом `--grpc-gateway_out`, чтобы сгенерировать код grpc gateway. Убедитесь, что вы используете обновленную версию protobuf и grpc-gateway плагина.
После выполнения этих шагов должны быть созданы все три файла (.pb.go, .pb.gw.go и .swagger.json) без ошибок.
Если ошибка все еще появляется, рекомендуется создать issue в репозитории grpc-gateway на GitHub, чтобы получить дополнительную помощь от разработчиков.