1. RetrofitClient.kt
.baseUrl("https://dongagd.herokuapp.com/")
baseUrl은 Root 주소를 적어주어야 해요.
현재 서버의 Root 주소는 "https://dongagd.herokuapp.com/" 입니다.
2. UserCreationElement
data요소들 생성하기 위한 data class
위 root 주소 https://dongagd.herokuapp.com/user/
data class UserCreationElement (
var username:String, var password:String,var phonenumber:String,var email:String,
var familyname:String,var age:String, var dataofonesbirth:String
)
3. LoginAPI
interface LoginAPI {
companion object{
fun RetrofitClient(): LoginAPI? = getInstance()?.create(LoginAPI::class.java)
fun create() : LoginAPI? {
return getInstance()?.create()
}
}
@POST("/user/")
fun userlogin(@Body user: UserCreationElement) : Call<List>
userlogin 매개변수, user (UserCreationElement 요소들)
Call<List> : 이거는 반환 값임
@POST: 서버에 자원을 생성한다. (반환해주는게 없다.)
@PUT: 서버에서 자원을 수정한다. (반환해주는게 없다.)
@GET: 서버에서 존재하는 데이터를 가져온다. (반환해주는게 있다.)
~ 더있는데 구글링하면 쉽게 찾을 수 있다.
4. List
List가 서버에서 반환되는 값을 받는 곳이다.
@GET사용할 때 주로 사용한다. (@POST, @PUT할 때는 반환 값이 없어 아무거나 넣으면 된다.)
지금은 @POST 테스트라 반환 값 관련 LIST 클래스는 쓰이지 않는다.
@SerializedName
var 데이터 : Stirng 과 같이 사용한다.
class List(
@SerializedName("age")
var age : String,
@SerializedName("email")
var email: String,
@SerializedName("familyname")
var familyname:String,
@SerializedName("password")
var username:String
)
5. MainActivity.kt
package com.example.retro
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
class MainActivity : AppCompatActivity() {
// LoginAPI retrofit
private val loginApi = LoginAPI.create() // LoginAPI create 메소드 호출 3.LoginAPI에서 확인가능
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// "입력한 ~ 데이터" 위치에 각각
// 이름, 패스워드, 휴대폰번호, 이메일, 성별(man or woman), 나이, 생년월일(211010)
// 이거 입력하시면 되요.
val userdata = "입력한 username 데이터"
val passworddata = "입력한 password 데이터"
val phonenumberdata = "입력한 phonenumber 데이터"
val emaildata = "입력한 email 데이터"
val familynamedata = "입력한 familyname 데이터"
val agedata = "입력한 age 데이터"
val dateofonesbirthdata = "입력한 dataofonesbirth 데이터"
// 사용자가 입력한 데이터들이 UserCreateionElement 생성자 변수에 들어간다.
val ucelement = UserCreationElement(
"입력한 username 데이터","입력한 password 데이터","입력한 phonenumber 데이터","입력한 email 데이터","입력한 familyname 데이터","입력한 age 데이터","입력한 dateofonesbirth 데이터"
)
// API 작성 DB에 넘긴다.
// loginApi는 위에 LoginApi.create()로 생성하였다.
// userlogin은 LoginApi에 있는 메소드
// ucelement는 바로 위에서 입력한 데이터들이다.
// : Callback<List>는 4.List번에서 설명했듯이 Callback<List>는 반환되는 값이다.
loginApi?.userlogin(ucelement)
?.enqueue(object : Callback<List> {
override fun onFailure(call: Call<List>, t: Throwable) {
Log.d("tag : ", "error")
}
override fun onResponse(
call: Call<List>,
response: Response<List>
) {
// 데이터 전달하지 못했다면
if(response.isSuccessful){
ToastmakeTextPrint("프로젝트 모집글 작성 완료 되었습니다.")
Log.d("tag","결과 : ${response.code().toString()}")
}else{
ToastmakeTextPrint("프로젝트 모집글 작성이 완료되지 않았습니다.")
Log.d("tag","${response.code().toString()}")
Log.e("tag","onFailure" + response.message())
}
}
})
}
}
'공부 및 활동 > heroku, django' 카테고리의 다른 글
Heroku를 하다 알게된 내용 (0) | 2021.10.11 |
---|---|
heroku에서 social login 연동하다 발생한 오류 (0) | 2021.10.11 |
HTTP, 400 Error 발생 (0) | 2021.10.10 |
Heroku Server 배포(django에서 Heroku서버 배포) (0) | 2021.10.07 |
AWS, action -> Elastic beanstalk와 codebuild -> Elastic beanstalk (0) | 2021.10.05 |
댓글