首页 > 解决方案 > Foursquare API 通过 Retrofit for Android 获取场地详细信息

问题描述

我是 Retrofit for 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 是场地的 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 的请求吗?

标签: androidretrofit2foursquareget-request

解决方案


尝试这个

@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


推荐阅读