Foursquare API получает информацию о месте проведения с Retrofit для Android - PullRequest
0 голосов
/ 14 февраля 2019

Я новичок в Retrofit для Android, и мне было интересно, как сделать правильный запрос, когда я хочу получить информацию о месте (https://developer.foursquare.com/docs/api/venues/details)

Я знаю, как сделать запрос следующим образом: https://api.foursquare.com/v2/venues/search&v=20190211&near=Amsterdam

@GET("/v2/venues/search")
fun getVenueResults(
    @Query("near") near: String,
    @Query("limit") limit: Int,
    @Query("v") version: Int = 20190211,
    @Query("client_id") clientId: String = BuildConfig.FS_Client_ID,
    @Query("client_secret") clientSecret: String = BuildConfig.FS_Client_Secret
): Call<FoursquareAPIResponse>

Но для получения подробной информации вы должны сделать запрос на получение:

https://api.foursquare.com/v2/venues/VENUE_ID

Где VENUE_ID - это идентификатор заведения. Если я сделаю что-то вроде этого:

@GET("/v2/venues/")
fun getVenueDetails(
    @Query("") id: String,
    @Query("v") version: Int = 20190211,
    @Query("client_id") clientId: String = BuildConfig.FS_Client_ID,
    @Query("client_secret") clientSecret: String = BuildConfig.FS_Client_Secret
): Call<FoursquareAPIResponse>

Он форматирует запрос на получение с местами /? = VENUE_ID вместо мест / VENUE_ID

Может кто-нибудь помочь мне найти правильный способ в Retrofit для форматирования запроса на получение места / VENUE_ID

1 Ответ

0 голосов
/ 14 февраля 2019

Попробуйте это

@GET("/v2/venues/{venueId}")
fun getVenueDetails(
    @Query("v") version: Int = 20190211,
    @Query("client_id") clientId: String = BuildConfig.FS_Client_ID,
    @Query("client_secret") clientSecret: String = BuildConfig.FS_Client_Secret,
    @Path("venueId") id: String,
): Call<FoursquareAPIResponse>

Документация - https://square.github.io/retrofit/2.x/retrofit/index.html?retrofit2/http/Path.html

...