Как вы останавливаете Retrofit в поиске встроенных объектов в отношениях один-ко-многим? - PullRequest
0 голосов
/ 13 марта 2020

Если у меня отношение «один ко многим» Android Помещение между двумя таблицами, выражаемое следующим образом (на примере вырезания и вставки с сайта Android для разработчиков ):

@Entity
data class User(
    @PrimaryKey val userId: Long,
    val name: String,
    val age: Int
)

@Entity
data class Playlist(
    @PrimaryKey val playlistId: Long,
    val userCreatorId: Long,
    val playlistName: String
)

data class UserWithPlaylists(
    @Embedded val user: User,
    @Relation(
          parentColumn = "userId",
          entityColumn = "userCreatorId"
    )
    val playlists: List<Playlist>
)

затем, когда я использую Retrofit2 для получения вложенного объекта «один ко многим» UserWithPlaylists от API, он ожидает JSON, который выглядит более или менее так:

{
    "user" : {
         "userID": 1,
         "name": "whatever",
         "age": 10
    },
    "playlists": [
        {
            "playlistId": 0,
            "playlistName": "whatever"
        },
        {
            "playlistId": 1,
            "playlistName": "whatever"
        }
    ]
}

Но мой API (и, насколько я могу судить, большинство API-интерфейсов) не встраивает данные пользователя в «user {}», как это. Он просто отображает данные пользователя без встраивания, например:

{
    "userID": 1,
    "name": "whatever",
    "age": 10,
    "playlists": [
        {
            "playlistId": 0,
            "playlistName": "whatever"
        },
        {
            "playlistId": 1,
            "playlistName": "whatever"
        }
    ]
}

Таким образом, Retrofit2 сможет создавать списки воспроизведения, но не найдет объект пользователя {}, поэтому я получу пустые объекты пользователя. но заполненные объекты списка воспроизведения.

Как бы я заставил Retrofit2 искать детали пользователя без встраивания?

Извинения за мой окольный способ задать этот вопрос. Я не знаю правильной терминологии для всего этого, что затруднило мне поиск.

спасибо!

Джон

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...