Retrofit Annotation

나고수·2022년 2월 6일
0

1일1공부

목록 보기
7/68

@Field 형식 : 인자를 form-urlencoded(key-vlaue) 으로 보낼때 사용한다.
@FormUrlEncoded 와 함께 쓰인다.
POST 요청 보낼때만 사용 가능하다.

@FormUrlEncoded
@POST("/baseURL 이후 주소")
    suspend fun apiPostUser(
        @Field("name") name: String,
        @Field("password") password: String
    ): Response<JsonObject>

@Body 형식 : 서버에서는 유일한 매개 변수로 받고, 클라이언트에서 Java Object를 통째로 직렬화 해서 보낼때 사용한다.
객체를 Json형식으로 넘겨줄때 사용한다.

@POST("/baseURL 이후 주소")
  suspend fun apiPostUser(
      @Body body: User
  ): Response<JsonObject>
ㅤㅤ
//body에 들어갈 User 객체 
data class User(
  @SerializedName("name")
  val name: String,
  @SerializedName("password")
  val password: String
)

@Query vs @Field
@Field는 파라미터가 url에 붙지 않아서 외부에 노출되지 않는다.
ex)http://어쩔저쩔/StatusUpdate
@Query는 파라미터가 url에 붙어서 외부에 노출된다.
ex) http://어쩔저쩔/StatusUpdate?Status=Ready

@Query vs Path
@Query
ex) http://어쩔저쩔/post?post_id=6
@Path - url에 "어쩌꾸/{id}" < 이렇게 적어줘야 path 파라미터가 여기 들어감
ex) http://어쩔저쩔//post/6

profile
되고싶다

1개의 댓글

comment-user-thumbnail
2024년 9월 25일
답글 달기