2016-05-03 7 views
5

Retrofitを使用している場合は、@FieldMap Map<String, String> optionsを使用してオプションのクエリを指定できます。オプションの追加および必須フィールドの追加

2つの必須フィールドと3つのオプションフィールドを持つapi呼び出しがあるとします。

どのようにこれらの呼び出しをフォーマットしますか?

それは

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

または全体の事のような単一@FieldMapだろうようなものになるだろう:あなただけの必須フィールドに記入します

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

と、このオプションを指定したとオプションの場合はnullを使用しますか?

+0

Pls read http://stackoverflow.com/questions/36634926/how-to-handle-null-param-values-in-retrofit/36640325#36640325 – BNK

答えて

9

@FieldMapおよび@Queryパラメータは両方ともオプションフィールドをサポートします。あなたが言及したように、値を渡したくない場合は、単にnullを渡してください。

+0

これを確認するには、必要に応じてnull値を持つ単一の '@FieldMap Map 'を呼び出しますか? – Orbit

+2

エンドポイントの自己文書化に使うことができるので、明示的な '@ Query'フィールドを使用することをお勧めしますが、' @ FieldMap'もその作業を行うべきです。 – Ryan

関連する問題