0

我正在使用“Go 的 Google APIs 客户端库”(https://github.com/googleapis/google-api-go-client),它在支持 Slides API 时存在问题,其中从零开始的索引请求属性是必需,但结构定义表明omitempty,因此省略了零值。我想分叉并修改此代码以删除这些omitempty值。

具体代码在这里:

https://github.com/googleapis/google-api-go-client/blob/master/slides/v1/slides-gen.go#L4060-L4069

type Range struct {
    // EndIndex: The optional zero-based index of the end of the
    // collection.
    // Required for `FIXED_RANGE` ranges.
    EndIndex int64 `json:"endIndex,omitempty"`

    // StartIndex: The optional zero-based index of the beginning of the
    // collection.
    // Required for `FIXED_RANGE` and `FROM_START_INDEX` ranges.
    StartIndex int64 `json:"startIndex,omitempty"`

我已经在issue 433发布了这个主题,但我也想分叉和修改代码来克服这个问题。

尝试分叉和修改此代码时遇到以下问题。

首先,它只希望使用以下包定义注释使用其原始包名称导入。

package slides // import "google.golang.org/api/slides/v1"

尝试使用分叉时,此注释会导致以下错误:

code in directory /path/to/fork/google-api-go-client/slides/v1 expects import "google.golang.org/api/slides/v1"

从包定义行中删除注释允许加载包,但随后遇到以下错误,表明需要内部库。

use of internal package google.golang.org/api/internal/gensupport not allowed

有没有办法分叉和修改这段代码?

更新

我能够通过 Clive Makamara hereinternal的以下内容克服包装问题。

$ ln -s /path/to/fork/google-api-go-client $GOPATH/google.golang.org/api

不幸的是,这并不能完全解决问题,因为其他范围类型需要省略字段,从而导致以下错误:

googleapi: Error 400: Invalid requests[5].createParagraphBullets: The textRange startIndex must not be specified for range type ALL, badRequest

由于某些范围类型需要StartIndex而其他类型要求它不存在,因此似乎可能需要使用单独的范围结构。

我目前的解决方法是按原样使用客户端,但添加一个小字体大小的换行前缀,这样我就不必更新从索引 0 开始的文本范围。

4

1 回答 1

0

如果您希望分叉存储库,您可以直接从 github UI 进行。转到github 存储库,在存储库的右上角有一个Fork按钮:

分叉示例

如果您认为您的更改对 Google API 很重要,也许您可​​以修改并执行拉取请求,请查看项目指南

您还可以查看 github Fork a Repo页面以获取更多信息。

于 2019-12-03T08:50:59.467 回答