gpt4 book ai didi

java - 使用 URL 字符串进行 API 调用的更好方法

转载 作者:行者123 更新时间:2023-12-01 22:29:42 24 4
gpt4 key购买 nike

我们与同事进行了讨论,但没有达成共识。我将感谢您的精彩论据和真实的使用体验。

问题是:

声明 URL 路径的更好方法是什么,例如在使用 Retrofit 的 Android 应用程序中?

  1. 对 URL 中的所有路径项使用单独文件中的静态字符串常量。
    @GET("$VIDEOS/$PUBLIC/{$SLUG}")
fun getVideos(@Path(SLUG) slug: String, @Query(LIMIT) limit: Int): List<Video>
  • 使用常规字符串。
  •     @GET("videos/public/{slug}")
    fun getVideos(@Path("slug") slug: String, @Query("limit") limit: Int): List<Video>

    最佳答案

    如果初始字符串在代码库的不同区域中使用,例如,如果您有两个具有相同 $VIDEOS 路径的不同 URL,则常量可能非常强大,因为您可以在一次。然而,仅仅因为常量“可能”用在不同的地方就创建它们,维护起来可能会是一场噩梦。例如,如上所述,两个 API 使用 $VIDEOS 路径,但只有一个发生变化。

    然而,另一方面,在这里使用可能有一个好处,那就是使用您的示例中的 slug,但经过编辑。

    private const val SLUG = "thing"

    @GET("videos/public/{$SLUG}")
    fun getVideos(@Path($SLUG) slug: String, @Query("limit") limit: Int): List<Video>

    因为这是在同一个 API 调用中使用的,但在两个区域内。要点是你可以将事物变成常量,但前提是它有意义。尽量不要抽象掉整个 API,因为一旦这样做,更改和维护就会变得更加困难。

    当有疑问时,我也会求助于库本身的示例。 Retrofit Docs这里的例子没有任何常数。

    关于java - 使用 URL 字符串进行 API 调用的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58553745/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com