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