Итак ... Я создаю RESTful API для моей идеи с помощью рамки джин, и я вошел в следующую проблему - Допустим, что у меня есть следующие конечные точки:Динамическое литье в Golang
/a/:id/*action /b/:id/*action /c/:id/*action
Так что, очевидно, когда я не даю никаких действий, я хочу вернуть данные для данного ID. Значит, я ничего не делаю, кроме запроса некоторых данных и их возврата, это означает, что функциональность в основном одинакова, и только возвращаемые данные разные.
Вот пример кода шахты -
func GetBusiness(c *gin.Context) {
businessID, err := strconv.Atoi(c.Param("id"))
if businessID == 0 || err != nil {
c.JSON(http.StatusBadRequest, gin.H{"success": false, "errorMessage": "Missing ID"})
}
business := &Business{}
business, err = business.Get(businessID)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"success": false, "errorMessage": "Business not found"})
}
c.JSON(http.StatusOK, business)
}
Таким образом, очевидно, бизнес может стать пользователем или что-нибудь еще. Итак, после этого длинного изложения, мой вопрос к вам, как я могу предотвратить дублирование кода в такой ситуации? Я пробовал использовать интерфейс, но я все еще борется с природой OO от Go, поэтому я бы действительно предложил любую помощь.
Заранее благодарен!
Большое спасибо за подробный ответ! – Yehonatan