我使用的是“Go的Google API客户端库”(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"
尝试使用fork时,此注释导致以下错误:
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 here中的以下内容解决internal包问题。
$ 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开始的文本范围。

最佳答案

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

git - 如何派生和修改Google API Go Client SDK来解决Slides API Range问​​题?-LMLPHP

如果您认为所做的更改对Google API而言意义重大,则可以修改并发出请求,请查看the project guidelines

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

关于git - 如何派生和修改Google API Go Client SDK来解决Slides API Range问​​题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59152588/

10-14 11:03
查看更多