如何在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>