Кодогенерация PetStorage
В прошлой главе мы реализовали настройку и генерацию Swagger, а также проектирование PetStorage. Продолжим нашу разработку.
- Добавим сущность в наш интерфейс:

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

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


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

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

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

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