Skip to content

Кодогенерация PetStorage

В прошлой главе мы реализовали настройку и генерацию Swagger, а также проектирование PetStorage. Продолжим нашу разработку.

  1. Добавим сущность в наш интерфейс:

  1. Создадим структуру PetStorage:

  1. Сгенерируем методы нашего интерфейса:


  1. Выберем имплементацию со ссылочным ресивером:

Появятся все методы интерфейса:

  1. Сгенерируем конструктор, пропишем создание полей через функцию make:

Mutex (short for "mutual exclusion") используется для контроля доступа к ресурсам в многопоточной среде. В данном случае sync.Mutex в PetStorage позволяет гарантировать безопасное использование данной структуры в многопоточной среде и помогает избегать конфликтов при одновременном доступе к ней из разных горутин (goroutines). В нашем случае каждый запрос в веб-сервере — это отдельная горутина для предотвращения race condition при параллельных запросах к серверу.