Я пытаюсь разработать API на ходу, чтобы позволить пользователю указать произвольную структуру данных и легко настроить конечные точки, которые выполняют операции CRUD для автоматически сгенерированной базы данных postgres, на основе структуры, которую они определяют.
На данный момент я использую gorm и могу автоматически создавать базу данных на основе определенного пользователем набора структур, поддерживающих все типы отношений (имеет один, один ко многим и т. Д.). Я также могу вставить в сгенерированную базу данных, когда JSON отправляется через конечные точки.
Проблема, которую я обнаружил, - это когда я пытаюсь получить данные. Кажется, что там, где не хватает многих go ORM, происходит сопоставление данных из всех таблиц обратно во вложенные структуры родительской структуры.
Например, если пользователь определяет:
type Member struct {
ID string
FirstName string
Hometown Hometown `gorm:"ForeignKey:MemberRefer"`
}
type Hometown struct {
ID string
City string
Province string
MemberRefer string
}
База данных создает таблицы:
Пользователи
1020 * родные города *
- id
- город
- провинция
- member_refer
Однако при извлечении данных все, что отображается обратно:
{
"id": "dc2bb591-506f-40a5-a141-bdc0c8410ba1",
"name": "Kevin Krishna",
"hometown": {
"id": "",
"city": "",
"province": ""
}
}
Кто-нибудь знает о го-орме, который поддерживает такое поведение?
Спасибо