Skip to content

protoc-gen-typescript-http 无法识别 stream RPC 方法导致生成代码缺失 #40

@Henry-Zhuang

Description

@Henry-Zhuang

问题描述

在定义包含 stream 关键字的 gRPC 方法时,protoc-gen-typescript-http 插件完全忽略这些方法,导致生成的 TypeScript 服务接口中缺失对应的流式方法。

i_oss.proto

// OSS服务
service OssService {
  // 获取对象存储(OSS)上传用的预签名链接
  rpc OssUploadUrl (file.service.v1.OssUploadUrlRequest) returns (file.service.v1.OssUploadUrlResponse) {
    option (google.api.http) = {
      post: "/admin/v1/file:upload-url"
      body: "*"
    };
  }

  // POST方法上传文件(流式接口)
  rpc PostUploadFile (stream file.service.v1.UploadOssFileRequest) returns (file.service.v1.UploadOssFileResponse) {
    option (google.api.http) = {
      post: "/admin/v1/file:upload"
      body: "*"
    };
  }
}

生成的ts代码

// OSS服务
export interface OssService {
  // 获取对象存储(OSS)上传用的预签名链接(非流式接口正常生成)
  OssUploadUrl(request: fileservicev1_OssUploadUrlRequest): Promise<fileservicev1_OssUploadUrlResponse>;
  // ❌ 流式接口缺失
}

相关上下文

protoc-gen-typescript-http官方已有相关Issue,但暂未解决

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions