Advertisement

Responsive Advertisement

Api Implementation in java

  • Create Interface class
@GET("posts")
Call<ArrayList<ApiModelResponse>> getresponse();
}
  • create retrofit class
package com.example.testapiimplementation.Network;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class RetrofitClass {

private static Retrofit retrofit;
private static final String BASEURL="https://jsonplaceholder.typicode.com/";


public static Retrofit getRetrofit(){
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient apiClient = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.readTimeout(8000, TimeUnit.SECONDS)
.writeTimeout(8000, TimeUnit.SECONDS)
.connectTimeout(8000
, TimeUnit.SECONDS)
.retryOnConnectionFailure(false)
.build();
Gson gson = new GsonBuilder()
.setLenient()
.create();


retrofit = new Retrofit.Builder()
.baseUrl(BASEURL)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(apiClient)
.build();

return retrofit;
}
}
  • if not added in gradle add these lines
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation("com.squareup.okhttp3:logging-interceptor:4.9.1")
implementation 'com.google.code.gson:gson:2.9.0'
  • if you are adding for recycler view add these 
package com.example.testapiimplementation.Adapter;

import android.content.Context;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.recyclerview.widget.RecyclerView;

import com.example.testapiimplementation.Model.ApiModelResponse;
import com.example.testapiimplementation.R;

import java.util.ArrayList;
import java.util.List;

/**
* Created by Shweta.Chauhan on 13/07/16.
*/

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.MyViewHolder>{

private Context context;
private ArrayList<ApiModelResponse> dataList;

public RecyclerAdapter(Context context, ArrayList<ApiModelResponse> dataList) {
this.context = context;
this.dataList = dataList;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_row,parent,false);
return new MyViewHolder(view);
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.txt1.setText(dataList.get(position).getTitle());
holder.txt2.setText(dataList.get(position).getUserId().toString());
holder.txt2.setText(dataList.get(position).getBody());

}

@Override
public int getItemCount() {
return dataList.size();
}

public class MyViewHolder extends RecyclerView.ViewHolder{

public TextView txt1,txt2,txt3;

public MyViewHolder(View itemView) {
super(itemView);
txt1=itemView.findViewById(R.id.txtbody);txt2=itemView.findViewById(R.id.txttitle);
txt3=itemView.findViewById(R.id.txtid);

}
}
}
  • add this in your activity file
package com.example.testapiimplementation;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;

import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import com.example.testapiimplementation.Adapter.RecyclerAdapter;
import com.example.testapiimplementation.Interface.ApiInterface;
import com.example.testapiimplementation.Model.ApiModelResponse;
import com.example.testapiimplementation.Network.RetrofitClass;
import com.example.testapiimplementation.databinding.ActivityMainBinding;

import java.util.ArrayList;
import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class MainActivity extends AppCompatActivity {

ActivityMainBinding mainBinding;
ApiInterface apiInterface;
ArrayList<ApiModelResponse> apiModelResponse;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mainBinding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(mainBinding.getRoot());

apiModelResponse = new ArrayList<>();
apiInterface=RetrofitClass.getRetrofit().create(ApiInterface.class);
apiInterface.getresponse().enqueue(new Callback<ArrayList<ApiModelResponse>>() {
@Override
public void onResponse(Call<ArrayList<ApiModelResponse>> call, Response<ArrayList<ApiModelResponse>> response) {
if(response.body()!=null){
apiModelResponse=response.body();
mainBinding.rectony.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
RecyclerAdapter recyclerAdapter1=new RecyclerAdapter(MainActivity.this,apiModelResponse);
mainBinding.rectony.setAdapter(recyclerAdapter1);
Toast.makeText(MainActivity.this, "ok", Toast.LENGTH_SHORT).show();
}
}

@Override
public void onFailure(Call<ArrayList<ApiModelResponse>> call, Throwable t) {
Toast.makeText(MainActivity.this, "not ok", Toast.LENGTH_SHORT).show();
}
});

}
}

Post a Comment

0 Comments