Способы реализации API на Golang с автогенерацией кода и документации

By Klimov Sergey

Elevator Pitch

Как можно быстро и просто реализовать API на языке Golang и документацию к нему. Какие есть подходы и инструменты. Что такое grpc-gateway, и как из protobuf сделать api сервер, gRPC сервер и готовую OpenAPI спецификацию. Так же как из swagger документации построить готовый веб сервер и наоборот.

Description

в своем выступлении я расскажу о таких решениях как 1) swagger-api/swagger-codegen 2) go-swagger/go-swagger 3) grpc-ecosystem/grpc-gateway 4) swaggo/swag 5) envoyproxy/envoy

Мой доклад не призван найти лучший инструмент, а призван рассказать о том с какой стороны можно подойти к написанию веб сервера, раскрыть нюансы и узкие места каждого из подходов. Более подробно остановлюсь на подходе https://github.com/grpc-ecosystem/grpc-gateway, об описании .proto файла по которому уже можно генерировать API и для других реализаций

Notes

Написал 2 статьи по этой тематике, на них будет базироваться мое выступление: https://habr.com/ru/post/496098/ https://habr.com/ru/post/496574/

До этого был опыт публичных выступлений: https://youtu.be/7bZREmkcpiY