Как разветвить и изменить Google API Go Client SDK, чтобы решить проблему с диапазоном API слайдов?

Я использую "Клиентскую библиотеку API Google для Go" ( 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

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

Есть ли способ разветвить и изменить этот код?

Обновить

Я смог преодолеть 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.

1 ответ

Если вы хотите форк репозитория, вы можете сделать это прямо из пользовательского интерфейса github. Перейдите в репозиторий github и в правом верхнем углу репозитория естьFork кнопка:

Если вы считаете, что ваше изменение имеет большое значение для Google API, возможно, вы могли бы изменить и выполнить запрос на перенос, см. Руководство по проекту.

Вы также можете взглянуть на страницу github Fork a Repo для получения дополнительной информации.

Другие вопросы по тегам