Kirill 🥷🏻
Вот такую команду пытаюсь выполнить
Борис
Alexander
который допустим тому же nginx не сильно проигрывает. а если уж мы так любим делать мало бизнес логики на один запрос, как несколькими днями ранее мне дали понять
Борис
ну просто тут готовая обёртка, наверное в этом удобство, nginx надо настраивать и следить за ним, как верхний шлюз он отлично справляется, да и как основной хз кроче
Alexander
бл
Alexander
я говорю fasthttp как http сервер настолько хорош, что не проигрывает nginx
Alexander
стандартный гошный дает больше нагрузки ощутимо
Борис
тогда я не понял, что прочитал
Борис
ну в целом я согласен
Tony
https://github.com/swaggo/swag
Запустит отдельный роутер для swagger, вроде что-то заработало, но:
Добавил перед main функцией в файле main.go
// @title Swagger Example API
// @version 1.0
// @description This is a sample server Petstore server.
// @termsOfService http://swagger.io/terms/
// @contact.name API Support
// @contact.url http://www.swagger.io/support
// @contact.email support@swagger.io
// @license.name Apache 2.0
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html
// @host petstore.swagger.io
// @BasePath /v2
func main() {
...
}
Tony
При переходе по ссылке появилось
Tony
Создал ф-цию в main.go для проверки аннотации. Перед функцией указал аннотации
// swaggerRouterStart godoc
// @Summary Retrieves user based on given ID
// @Produce json
// @Param id path integer true "User ID"
// @Success 200
// @Router /users/{id} [get]
Tony
Выполнил swag init ещё раз, но аннотации не появляются в доке
Не могу понять почему и как скормить другие или все файлы проекта, а не только main.go ?
У меня конечные точки разбросаны по файлам сущностей и в каждом регистрируются точки именно этой сущности
Tony
Роутер для свагера страртует так:
func swaggerRouterStart() {
//Стартует отдельный роутер для swagerа
r := chi.NewRouter()
r.Get("/swagger/*", httpSwagger.Handler(
httpSwagger.URL("http://localhost:1323/swagger/doc.json"),
))
http.ListenAndServe(":1323", r)
}
Илья
Tony
да, нужно прочитать все
Так у меня даже из main.go аннотация функции не появилась в документации свагера.
Видимо еще как-то надо сообщить свагеру, но как я понял, он сам анализирует файл go и ищет свои аннотации
Tony
А для обработки остальных файлов, как я понял, необходимо запускать swag init <файл> или как-то указать лист всех файлов
Tony
.
Илья
а swag init ошибок не выдает?
Tony
Т.е. в main.go у меня кроме описания свагера (которое появляется в браузере) еще есть функция
// swaggerRouterStart godoc
// @Summary Retrieves user based on given ID
// @Produce json
// @Param id path integer true "User ID"
// @Success 200
// @Router /users/{id} [get]
func swaggerRouterStart() {
//Стартует отдельный роутер для swagerа т.к. к роутеру жулиана прикрутить не удалось
r := chi.NewRouter()
r.Get("/swagger/*", httpSwagger.Handler(
httpSwagger.URL("http://localhost:1323/swagger/doc.json"), //The url pointing to API definition
))
http.ListenAndServe(":1323", r)
}
Это , конечно, не конечная точка, но аннотация же есть
Илья
папка doc пустая?
Илья
Tony
main.go в папке cmd, в ней и swag init приходится делать
Илья
Tony
Хотя нет, данные есть
Tony
{
"swagger": "2.0",
"info": {
"description": "This is a sample server Petstore server.",
"title": "Swagger Example API",
"termsOfService": "http://swagger.io/terms/",
"contact": {
"name": "API Support",
"url": "http://www.swagger.io/support",
"email": "support@swagger.io"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "1.0"
},
"host": "petstore.swagger.io",
"basePath": "/v2",
"paths": {
"/users/{id}": {
"get": {
"produces": [
"application/json"
],
"summary": "Retrieves user based on given ID",
"parameters": [
{
"type": "integer",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": ""
}
}
}
}
}
}
Илья
значит с Handler проблема
Tony
блин, сделаю в пустом проекте, чтобы разобраться в этой бяке :)
Tony
скинь логи выполнения
2022/06/21 8:11:01 Generate swagger docs....
2022/06/21 8:11:01 Generate general API Info, search dir:./
2022/06/21 8:11:02 create docs.go at docs/docs.go
2022/06/21 8:11:02 create swagger.json at docs/swagger.json
2022/06/21 8:11:02 create swagger.yaml at docs/swagger.yaml
Вроде, всё хорошо, но...
Tony
Что-то нифига...
Tony
Сделал в пустом проекте
Tony
https://pastebin.com/ds6vVWa0
Tony
Tony
Может что-то ещё кроме swag init надо выполнить?
Илья
Какой самый быстрый совместимый с net/http роутер ?
Grigory
Он же не совместим с net/http
Grigory
Grigory
Где нибудь должны быть бенчи
Igor
Tony
🥺 heeeeeeeelp swagger не поддаётся :) Мож у кого есть рабочий пример проекта? Ну или накидать может кто сможет на досуге пустышку, но с рабочим свагером
Илья
Tony
John
Доберусь до ноута скину команду
Tony
Null
Что Go грядущий нам готовит? Разбираем долгожданный релиз 1.19
https://habr.com/ru/company/ozontech/blog/674190/
@Golang_google
Не ну это
последний
здравствуйте, я учу go с двумя друзьями.
Не ну это
Звучит как завязка для гей прона
Emin Zalaev
Булат
Илья
Булат
пока еще не определились
Emin Zalaev
Булат
У нас еще лесбиянка есть, сейчас тоже зайдет
Илья
Трио
Настя
Emin Zalaev
вайтишники общий сбор
Patamen
Булат
Илья
не флудим, админ в онлайне
Patamen
Pull Request № 42069
Add Premium Telegram Reactions to Chat
-Clown
-Whale
-Hotdog
-etc
Настя
Ron Mount
Emin Zalaev
Все понятно челам дали домашку
Emin Zalaev
Учить голэнг
Илья
что за алгоритмы на доске?
Emin Zalaev
Emin Zalaev
Булат
тоже верно
Ron Mount
да
Alexander
На лаптопе играть... Да еще и в дотан...
Вильям
Смотрю, ты тут забавляется сидишь, в наших чатах уже нет активности))
Ron Mount
пудш хокай