我使用的是"Google客户机库for Go“( https://github.com/googleapis/google-api-go-client ),它存在一个问题,它支持幻灯片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"`我已经在这里发布了这个主题,第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 这里的以下内容来克服这里包的问题。
$ 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开始更新文本范围。
https://stackoverflow.com/questions/59152588
复制相似问题