@Path как необязательный параметр? - PullRequest
0 голосов
/ 24 сентября 2019

В моем андроид-проекте я использую Retrofit:

@POST("/correspondents/{correspondent_id}")
    fun updateCorrespondent(@Path("correspondent_id") correspondentId: String, @Body body: JsonElement): Call<Void>

Поэтому я звоню из клиента так:

 fun updateCorrespondent(correspondent: Correspondent, callback: Callback<Void>) {
        val call = myRestClient.updateCorrespondent(correspondent.id, correspondent.toUpdateJson())
        call.enqueue(callback)
    }

Хорошо, все отлично.

НоМне нужно сделать @Path("correspondent_id") необязательно.

Мне нужно позвонить из клиента следующим образом:

fun updateCorrespondent(correspondent: Correspondent, callback: Callback<Void>) {
        val call = tangoRestClient.updateCorrespondent(correspondent.toUpdateJson())        
        call.enqueue(callback)
    }

Возможно ли это?

На данный момент я использую два отдельных метода:

@POST("/correspondents/{correspondent_id}")
    fun updateCorrespondent(@Path("correspondent_id") correspondentId: String, @Body body: JsonElement): Call<Void>

    @POST("/correspondents/create")
    fun createCorrespondent(@Body body: JsonElement): Call<Void>

Можно ли использовать только один метод с необязательным @Path?

1 Ответ

1 голос
/ 24 сентября 2019
@POST("/correspondents/{correspondent_id}") fun updateCorrespondent(@Path("correspondent_id") correspondentId: String?="create", @Body body: JsonElement): Call<Void>

когда вам не нужен корреспондент, тогда звоните как

mtRestClient.updateCorrespondent(body = correspondent.toUpdateJson())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...