У меня есть проект для интеграции электронной коммерции, и у нас есть структура папок, подобная этой:
.
└── Sources
├── api
│ └── ...
└── websocket
├── models
└── ...
Мой первый вопрос:
Эта папка models
будет содержать некоторые файлы длялучше организуйте мои различные необходимые структуры (потому что они могут быть довольно длинными), и я действительно не хочу использовать в каталоге /go/src
(потому что этот проект имеет API + WebSocket).
Так что это неправильноесли я импортирую как:
import (
Models "./models"
)
и использую так: var someModel Models.SomeModel
?
Мой второй вопрос:
Зная, что у меня будет много моделей,я могу создать уникальную функцию, чтобы сделать HTTP-запрос и проанализировать результат с заданной структурой?
Пример:
func makeRequest(endpoint string, model interface{}) interface{} {
// TODO - Environment Variables
resp, err := http.Get("http://localhost:9000" + endpoint)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
switch reflect.TypeOf(model).String() {
case "models.FullCategory":
fmt.Println("FullCategory")
var fullCategory Models.FullCategory
if err := json.Unmarshal(body, &fullCategory); err != nil {
panic(err)
}
return fullCategory
}
return nil
}
Это может быть неправильно? Что я могу сделать, чтобы сделать это правильно?