Skip to content
Example of creating REST API with Echo framework
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
api
config
model
service
spec
store
test
.gitignore
Gopkg.lock
Gopkg.toml add description Mar 4, 2018
Makefile add swagger Mar 8, 2018
README.md add swagger Mar 8, 2018
main.go

README.md

echo-rest-api

В данном проекте показан пример создания REST API на Go с использованием Echo framework.

В проекте использованы

HTTP

  • github.com/labstack/echo - для создания rest сервиса; использованы: router, data binding и data rendering, logger middleware

Валидация

  • gopkg.in/go-playground/validator.v9 - для data validation

База данных

  • database/sql - для работы с запросами и транзакционностью
  • github.com/lib/pq - в качестве СУБД использовалась postgresql
  • github.com/rubenv/sql-migrate - миграционная тулза для sql
  • docker postgres image - для запуска postgresql

Конфигурация

  • flag - для передачи параметров при запуске
  • github.com/jinzhu/configor - для загрузки конфигурации из yaml

Логгирование

  • github.com/sirupsen/logrus - для логов приложения

Тестирование

  • testing - для написания тестов
  • github.com/golang/mock/gomock - для генерации моков
  • github.com/stretchr/testify/assert - исключительно для assert в тестах

Зависимости

github.com/golang/dep - менеджер зависимостей

Для запуска

  • make init - установит необходимые тулзы (dep, sql-migrate, mockgen), затем через dep установит зависимости проекта
  • make run - запустит приложение, при этом запустив docker контейнер с БД
  • make test - запустит приложение, при этом запустив docker контейнер с БД
  • make spec - сгенерирует open-api спецификацию в spec/api.json. После запуска сервис отдает спеку как статику по пути /spec/api.json, можно также выполнить swagger serve -F=swagger http://localhost:8081/spec/api.json, что бы отобразить в html виде c запущенного сервиса.
  • spec-ui - откроет спеку в html
You can’t perform that action at this time.