Основная деятельность моего модифицированного приложения для отображения моего идентификатора Github с использованием API
package com.arpit.basicretrofitapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
//import android.util.Log
//import androidx.appcompat.app.AppCompatActivity
import com.arpit.basicretrofitapp.model.User
import kotlinx.android.synthetic.main.activity_main.*
import retrofit2.*
import retrofit2.converter.gson.GsonConverterFactory
import java.lang.StringBuilder
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//Retrofit builder
val retrofit = Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("https://api.github.com/users/")
.build()
//object to call methods
val jsonPlaceholderApi = retrofit.create(JsonPlaceholderApi::class.java)
val myCall:Call<List<User>> = jsonPlaceholderApi.getUser()
myCall.enqueue(object : Callback<List<User>> {
override fun onFailure(call: Call<List<User>>, t: Throwable) {
Log.e("ERROR", t.message.toString())
}
override fun onResponse(call: Call<List<User>>, response: Response<List<User>>) {
val users:List<User> = response.body()!!
val stringBuilder = StringBuilder()
for (user in users ){
stringBuilder.append( user.login)
stringBuilder.append("\n")
stringBuilder.append( user.id)
stringBuilder.append("\n")
stringBuilder.append( user.url)
stringBuilder.append("\n")
stringBuilder.append("\n")
}
txtUser.text= stringBuilder.toString()
}
}
)
}
}
Класс с именем «Пользователи» для установки отображаемых обязательных полей {
package com.arpit.basicretrofitapp.model
import com.google.gson.annotations.SerializedName
пользователь класса данных (val логин: String, val id: Int, val url: String
)}
Именованный интерфейс "JsonPlaceholderApi" для размещения моего имени пользователя в базовом URL
{
package com.arpit.basicretrofitapp
import com.arpit.basicretrofitapp.model.User import retrofit2.Call import retrofit2.http.GET
interface JsonPlaceholderApi {// как в java мы используем return, здесь мы используем Call >>
//https://jsonplaceholder.typicode.com/ +users
@GET("arpitgupta006")
fun getUser(): Call<List<User>> }
}