如何在Reform调用中始终传递常量参数



如何在Reform2调用中始终传递带有硬编码值的查询参数,而不将该参数暴露给API用户?

我正在调用一个我不拥有的API,它可能需要一个模糊的论点。我一直想通过";魔术;对于这个论点,并且因为它是一个模糊的实现细节,我不希望我的调用者必须处理它。

我有这样的代码:

interface MyApiClient {
data class MyResponse(val result: String?)
@GET("/some/api/call")
fun someApiCall(
@Query("mandatoryArg") arg: String,
@Query("obscureArg") obscureArg: String = "magic"
): Call<MyResponse>
}

我能想到的最好的办法是使obscureArg是可选的,并为其提供一个良好的默认值,但通过这种方式,调用者仍然可以传递其他内容。

如何在REST API调用中始终传递obscureArg=magic,而不允许调用方传递其他内容?

您可以在url本身中硬编码查询参数。

@GET("/some/api/call?obscureArg=magic")
fun someApiCall(
@Query("mandatoryArg") arg: String,
): Call<MyResponse>

最新更新