web-dev-qa-db-fra.com

Rénovation des champs facultatifs et obligatoires

Lors de l’utilisation de Retrofit, je sais que vous pouvez utiliser @FieldMap Map<String, String> options pour spécifier des requêtes facultatives.

Dites que j'ai un appel d'api qui avait 2 champs obligatoires et 3 champs facultatifs.

Comment formaterais-je ces appels?

Serait-ce quelque chose comme

Call<Response> getStuff(@Query("user_id") String userId, @Query("password") String password, @FieldMap Map<String, String> options)

ou le tout serait-il un simple @FieldMap comme:

Call<Response> getStuff(@FieldMap Map<String, String> options)

et avec cette option voudriez-vous simplement remplir les champs obligatoires puis utiliser null pour les options?

11
Orbit

Les paramètres @FieldMap et @Query prennent tous deux en charge les champs facultatifs. Comme vous l'avez mentionné, passez simplement null si vous ne voulez pas transmettre une valeur.

20
Ryan

Retrofit2 (contrairement à Retrofit1) n'accepte pas les valeurs NULL dans @FiledMap (exception). Les valeurs nulles passées à @Field/@Query params sont ignorées (n'apparaissent pas dans http-request)

0
Vasily Makarov