[BUG] The incorrect splicing of the GitHub API results in empty data from the request.

Open
#243 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
35/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
github, kotlin
Domain
api, mobile

Research direction

Start with advanced/start/app/src/main/java/com/example/android/codelabs/paging/data/GithubRepository.kt and advanced/end/app/src/main/java/com/example/android/codelabs/paging/data/GithubRemoteMediator.kt, then compare their apiQuery construction with IN_QUALIFIER in the corresponding GithubService.kt files. Verify that a query such as “Android” produces the documented GitHub search URL and returns repository items in both projects.

Written by the indexing model from the issue text.

Description

Hey there, I recently tried the demo codelab-android-paging/tree/main/advanced/start, and found the list always empty, according to the latest official document the reason is the apiQuery used in both start and end project missed a + between query and IN_QUALIFIER:

as in the start project:

IN_QUALIFIER:

https://github.com/android/codelab-android-paging/blob/d1f28e0caf76e429c31b063163cd0ad963b549c9/advanced/start/app/src/main/java/com/example/android/codelabs/paging/api/GithubService.kt#L27

apiQuery:

https://github.com/android/codelab-android-paging/blob/d1f28e0caf76e429c31b063163cd0ad963b549c9/advanced/start/app/src/main/java/com/example/android/codelabs/paging/data/GithubRepository.kt#L80

Same code in [codelab-android-paging/tree/main/advanced/end](https://github.com/android/codelab-android-paging/tree/main/advanced/end)

https://github.com/android/codelab-android-paging/blob/d1f28e0caf76e429c31b063163cd0ad963b549c9/advanced/end/app/src/main/java/com/example/android/codelabs/paging/api/GithubService.kt#L27

https://github.com/android/codelab-android-paging/blob/d1f28e0caf76e429c31b063163cd0ad963b549c9/advanced/end/app/src/main/java/com/example/android/codelabs/paging/data/GithubRemoteMediator.kt#L85

if we input a query as "Android", the final network request URL will be "https://api.github.com/search/repositories?sort=stars&q=Androidin%3Aname%2Cdescription&page=1&per_page=30"

and the result:

{
  "total_count": 0,
  "incomplete_results": false,
  "items": [
    
  ]
}

after we add a + :

"https://api.github.com/search/repositories?sort=stars&q=Android%2Bin%3Aname%2Cdescription&page=1&per_page=30"

and the result:

{
    "total_count": 64,
    "incomplete_results": false,
    "items": [
        ...
    ]
}
Dominant language
Kotlin
Stars
509
Forks
268
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from android/codelab-android-paging

All issues in android/codelab-android-paging

Similar issues

More Kotlin issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.