локально.
Установил oapi-codegen и успешно запустил пример oapi-codegen/examples/petstore-expanded/echo.
Потом захотелось перенести содержимое папки echo в каталог /home/petshop/work.
Прочитал пример https://github.com/golang/go/wiki/Modules#can-i-work-entirely-outside-of-vcs-on-my-local-filesystem и попробовал сделать таким же образом.
В каталоге /home/petshop/work создал файл go.mod:
======
module example.com/petshop
go 1.16
require (
example.com/petshop/api v0.0.0-00010101000000-000000000000
github.com/deepmap/oapi-codegen v1.5.6
github.com/getkin/kin-openapi v0.53.0 // indirect
github.com/labstack/echo/v4 v4.2.1
github.com/stretchr/testify v1.7.0
)
replace example.com/petshop/api => /home/petshop/work/api
======
А в каталоге /home/petshop/work/api создал такой файл go.mod:
======
module example.com/petshop/api
=====
После этого в файле /home/petshop/work/petstore.go заменил в импорте:
=====
// "github.com/deepmap/oapi-codegen/examples/petstore-expanded/echo/api"
"example.com/petshop/api"
=====
Но при попытке ~/work$ go run petstore.go получаю ошибку:
# github.com/deepmap/oapi-codegen/pkg/middleware
../go/pkg/mod/github.com/deepmap/oapi-codegen@v1.5.6/pkg/middleware/oapi_validate.go:68:12: undefined: openapi3filter.NewRouter
../go/pkg/mod/github.com/deepmap/oapi-codegen@v1.5.6/pkg/middleware/oapi_validate.go:87:59: undefined: openapi3filter.Router
../go/pkg/mod/github.com/deepmap/oapi-codegen@v1.5.6/pkg/middleware/oapi_validate.go:94:9: undefined: openapi3filter.RouteError
Предполагаю, что проблема связана с /home/petshop/work/api, но уже третий день ничего не могу сделать(
Подскажите, пожалуйста, в чем проблема?
Спасибо!
там в kin-openapi поломали чуток обратную совместимость неделю назад https://github.com/getkin/kin-openapi/pull/210, oapi-codegen ещё не отреагировал
Т.е. просто подождать? А обойти никак нельзя?
запинь в go.mod версию openapi-codegen@v0.50.0
Заработало! Большое спасибо!
kin-openapi - маргинальщина. Вам нужно просто открыть проект в goLand и приказать иде синхронизировать зависимости
Анатолий, спасибо за ответ! Но у меня нет IDE, я просто пользуюсь vim и Sublime, проект взял готовый и переношу его в другой каталог. Как мне в этом случае обновить зависимости и понять, что все будет совместимо и без ошибок? Мне нужен генератор кода oapi-codegen, так понимаю, что у него зависимость от kin-openapi. Или можно как-то обойтись без этой зависимости?
поставьте триальную goLand , через месяц обновите (2 мин), там у вас будет опция "sync dependencies" - пните иде, она всё сделает за вас. В любом случае разработка на го без GoLand не очень вообще нормальный воркфлоу из консоли: go mod init go build (go run) Вам не нужно руками писать go.mod , голанг сделает это за вас из импортов в исходниках если вам нужно в сваггер, рассмотрите вариант с go-swagger. Эта либа не умеет в сваггер3, но тем не менее она просто лучше чем oapi-codegen
айдие большие, и бесполезные
ну как по мне разработка без иде это либо джедайство, либо колхоз. Но вам виднее конечно
Спасибо, попробую!
в любом случае быстрее без них
он тролль. забей
это чистая правда, но я говорил от сердца
Sync dependencies сделает обычный go get ./... . Зачем для этого goland?
там же про GoLand речь зашла, при чём тут go get
Там речь зашла про "проблемы с зависимостями? поставь голанд, он всё разрулит!"
Обсуждают сегодня