JavaFX এবং RESTful Web Services এর মধ্যে ইন্টিগ্রেশন করতে হলে আপনাকে JavaFX অ্যাপ্লিকেশন এবং RESTful API এর মধ্যে যোগাযোগ স্থাপন করতে হবে। RESTful Web Services হল এমন একটি ওয়েব সেবা যা HTTP প্রোটোকল ব্যবহার করে তথ্য বিনিময় করে এবং সাধারণত JSON বা XML ফরম্যাটে ডেটা প্রেরণ করে।
JavaFX তে RESTful API ব্যবহার করার জন্য আমরা সাধারণত Java's HttpURLConnection
অথবা Apache HttpClient বা Java 11 এর HttpClient
ব্যবহার করি।
এই উদাহরণে, আমরা JavaFX এবং RESTful Web Service এর মধ্যে যোগাযোগ স্থাপন করবো, যেখানে JavaFX UI-তে REST API থেকে ডেটা দেখানো হবে।
JavaFX UI-তে একটি বাটন থাকবে যা RESTful API কল করবে এবং রেসপন্স থেকে ডেটা দেখাবে।
Java 11 এবং তার পরবর্তী সংস্করণে HttpClient
API ব্যবহার করা সহজ এবং কার্যকরী। আমরা RESTful API থেকে JSON ডেটা নিয়ে UI তে প্রদর্শন করবো।
আমরা একটি RESTful API ব্যবহার করবো যা JSON ফরম্যাটে ডেটা প্রদান করবে, যেমন **https://jsonplaceholder.typicode.com/todos/1**। এই API থেকে একটি টাস্কের তথ্য পাবো, যা আমরা JavaFX অ্যাপ্লিকেশনে প্রদর্শন করবো।
import javafx.application.Application;
import javafx.concurrent.Task;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import org.json.JSONObject;
public class JavaFXRestExample extends Application {
private Label resultLabel = new Label("Loading...");
@Override
public void start(Stage primaryStage) {
// Button to trigger REST API call
Button btn = new Button("Get Task Details");
btn.setOnAction(e -> fetchDataFromAPI());
StackPane root = new StackPane();
root.getChildren().addAll(btn, resultLabel);
Scene scene = new Scene(root, 400, 250);
primaryStage.setTitle("JavaFX and RESTful Web Services");
primaryStage.setScene(scene);
primaryStage.show();
}
// Method to fetch data from the RESTful API
private void fetchDataFromAPI() {
// Create a Task for background API call
Task<Void> fetchTask = new Task<Void>() {
@Override
protected Void call() throws Exception {
// API URL
String apiUrl = "https://jsonplaceholder.typicode.com/todos/1";
// HttpClient instance to make the request
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(apiUrl))
.build();
// Sending the request and getting the response
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
// Parse JSON response
String responseBody = response.body();
JSONObject json = new JSONObject(responseBody);
// Extract data from JSON
String taskTitle = json.getString("title");
String taskCompleted = json.getString("completed");
// Update the JavaFX UI (run on the JavaFX Application Thread)
updateUI(taskTitle, taskCompleted);
return null;
}
};
// Run the task in a background thread
new Thread(fetchTask).start();
}
// Update the UI with the data fetched from the API
private void updateUI(String taskTitle, String taskCompleted) {
// Updating the result label with the task information
resultLabel.setText("Task: " + taskTitle + "\nCompleted: " + taskCompleted);
}
public static void main(String[] args) {
launch(args);
}
}
Button
এবং একটি Label
তৈরি করেছি। বাটনে ক্লিক করলে fetchDataFromAPI()
মেথড কল হবে।Label
ব্যবহারকারীদের জন্য রেসপন্স দেখাবে, যেমন টাস্কের শিরোনাম এবং সম্পূর্ণতার অবস্থা।HttpClient
Java 11 থেকে অন্তর্ভুক্ত করা হয়েছে, যা HTTP রিকোয়েস্ট করার জন্য ব্যবহৃত হয়।HttpRequest
ব্যবহার করে GET রিকোয়েস্ট পাঠানো হয়েছে https://jsonplaceholder.typicode.com/todos/1
URL এ।org.json.JSONObject
ব্যবহার করেছি JSON রেসপন্স পার্স করতে। এর মাধ্যমে আমরা টাস্কের শিরোনাম এবং সম্পূর্ণতার অবস্থা বের করেছি।Task
ব্যবহার করা হয়েছে API কলটি ব্যাকগ্রাউন্ড থ্রেডে করার জন্য, যাতে UI থ্রেড ব্লক না হয়।Task.call()
মেথডে API রিকোয়েস্ট করা হয় এবং updateUI()
মেথডে JavaFX UI আপডেট করা হয়।updateUI()
মেথড UI থ্রেডে রান করা হয়, যা Platform.runLater()
ব্যবহার করে করা যেতে পারে (যদিও এখানে সোজাসুজি UI আপডেট করেছি)।JSONPlaceholder API একটি ফ্রি API যা ব্যবহারকারীদের JSON ডেটা প্রদান করে। এখানে একটি টাস্কের আইডি অনুযায়ী বিস্তারিত পাওয়ার জন্য:
https://jsonplaceholder.typicode.com/todos/1
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
Java 11 থেকে, আপনি HttpClient
ব্যবহার করে REST API কল করতে পারেন, যা পরবর্তীতে ব্যবহৃত হবে। এটি সবচেয়ে আধুনিক পদ্ধতি, যা সরাসরি HTTP রিকোয়েস্ট পাঠানোর জন্য একটি API প্রদান করে।
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://jsonplaceholder.typicode.com/todos/1"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
এটি সরাসরি HTTP GET রিকোয়েস্ট করে এবং রেসপন্স হিসাবে একটি String
গ্রহণ করে।
JavaFX অ্যাপ্লিকেশনের সাথে RESTful Web Services ইন্টিগ্রেট করার জন্য HttpClient
ব্যবহার করা একটি খুবই কার্যকরী পদ্ধতি। আমরা দেখলাম কীভাবে JavaFX UI তে RESTful API থেকে ডেটা নিয়ে তা প্রদর্শন করা যায়। HttpClient
এবং HttpRequest
ব্যবহার করে GET রিকোয়েস্ট পাঠানো, এবং JSON ডেটা পার্স করে তা ব্যবহারকারীদের জন্য প্রদর্শন করা সম্ভব।
এছাড়া, JavaFX এর মধ্যে Java ও RESTful API এর ইন্টিগ্রেশন আপনি উন্নত, ইন্টারঅ্যাকটিভ অ্যাপ্লিকেশন তৈরি করতে ব্যবহার করতে পারবেন।
JavaFX দিয়ে একটি ক্লায়েন্ট-সাইড গ্রাফিকাল ইউজার ইন্টারফেস (GUI) তৈরি করার সময় আপনি RESTful Web Services-এর সাথে ইন্টিগ্রেশন করতে পারেন। এর মাধ্যমে আপনি JavaFX অ্যাপ্লিকেশন থেকে HTTP প্রোটোকল ব্যবহার করে ডেটা বিনিময় করতে পারবেন। REST (Representational State Transfer) একটি আর্কিটেকচারাল স্টাইল যা ইন্টারনেটের মাধ্যমে ওয়েব সেবাগুলির জন্য একটি সাধারণ যোগাযোগ প্রক্রিয়া প্রদান করে।
JavaFX এবং RESTful Web Services-এর সাথে ইন্টিগ্রেশন করার জন্য সাধারণত HTTP রিকোয়েস্ট পাঠানোর জন্য Java's HTTP Client অথবা Third-party libraries যেমন JAX-RS (Jersey) বা OkHttp ব্যবহার করা হয়।
এখানে আমি JavaFX এবং RESTful Web Services এর মধ্যে ইন্টিগ্রেশন দেখাবো যেখানে JavaFX অ্যাপ্লিকেশন একটি RESTful API থেকে ডেটা ফেচ করবে এবং UI তে প্রদর্শন করবে।
ধরা যাক আমাদের একটি RESTful API রয়েছে যেটি JSON ফর্ম্যাটে ডেটা প্রদান করে। এই API সাধারণত একটি সার্ভার বা ওয়েব অ্যাপ্লিকেশন হিসেবে চলে। এখানে একটি সহজ REST API এর উদাহরণ:
@Path("/user")
public class UserService {
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getUserData() {
// Example response data in JSON format
String userJson = "{ \"name\": \"John Doe\", \"age\": 30, \"city\": \"New York\" }";
return Response.status(200).entity(userJson).build();
}
}
এটি একটি সহজ UserService
ক্লাস যা /user
পাথের মাধ্যমে JSON ডেটা প্রদান করবে। এই API কে JAX-RS (Jersey) অথবা অন্য যেকোনো ফ্রেমওয়ার্ক দিয়ে ওয়েব সার্ভারে রেস্টফুল API রূপে তৈরি করা যেতে পারে।
এখন JavaFX অ্যাপ্লিকেশন তৈরি করি যা এই REST API থেকে ডেটা গ্রহণ করবে এবং UI তে প্রদর্শন করবে।
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import org.json.JSONObject;
public class JavaFXRestClientExample extends Application {
@Override
public void start(Stage primaryStage) {
Label label = new Label("Loading data...");
// Create an HTTP client
HttpClient client = HttpClient.newHttpClient();
// Create the HTTP request to the REST API endpoint
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://localhost:8080/api/user")) // REST API URL
.build();
// Send the request asynchronously
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body) // Process response body
.thenApply(this::parseJson) // Parse JSON to extract data
.thenAccept(label::setText) // Update UI label with data
.join(); // Wait for completion
StackPane root = new StackPane();
root.getChildren().add(label);
Scene scene = new Scene(root, 400, 200);
primaryStage.setTitle("JavaFX with RESTful Web Services");
primaryStage.setScene(scene);
primaryStage.show();
}
// Method to parse JSON data
private String parseJson(String responseBody) {
JSONObject json = new JSONObject(responseBody);
String name = json.getString("name");
int age = json.getInt("age");
String city = json.getString("city");
// Return the formatted string
return String.format("Name: %s\nAge: %d\nCity: %s", name, age, city);
}
public static void main(String[] args) {
launch(args);
}
}
HttpClient
যোগ করা হয়েছে যা সহজে HTTP রিকোয়েস্ট পাঠাতে এবং রেসপন্স গ্রহণ করতে সাহায্য করে।client.sendAsync()
মেথডটি অ্যাসিঙ্ক্রোনাস HTTP রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়েছে, যা UI থ্রেডের ব্লক না করে ব্যাকগ্রাউন্ডে কাজ করবে।HttpRequest.newBuilder()
ব্যবহার করে একটি GET রিকোয়েস্ট তৈরি করা হয় যা REST API থেকে ডেটা প্রাপ্তির জন্য ব্যবহৃত হয়।org.json.JSONObject
দিয়ে পার্স করা হয়েছে। এখানে name
, age
, এবং city
ডেটা বের করা হয়েছে এবং একটি স্ট্রিং ফরম্যাটে UI তে দেখানোর জন্য সেট করা হয়েছে।label.setText()
মেথডের মাধ্যমে ডেটা UI তে প্রদর্শিত হবে।localhost:8080/api/user
এ চলতে হবে। আপনি JAX-RS বা অন্য কোনো ফ্রেমওয়ার্ক ব্যবহার করে API তৈরি করতে পারেন।HttpClient
ব্যবহার করে POST রিকোয়েস্টও পাঠাতে পারেন, যেমন একটি ফর্ম থেকে ডেটা পাঠানো বা নতুন ডেটা তৈরি করা।HttpHeaders
যোগ করতে পারেন HTTP রিকোয়েস্টে।JavaFX দিয়ে আপনি একটি ইন্টারেক্টিভ ইউজার ইন্টারফেস তৈরি করতে পারেন যা RESTful Web Services-এর মাধ্যমে ডেটা ফেচ করতে পারে। Java HTTP Client ব্যবহার করে আপনি REST API থেকে ডেটা লোড করতে পারেন এবং JavaFX UI তে সেই ডেটা দেখাতে পারেন। এটি ডেটা প্রদর্শন, পোস্ট করা, এবং আরও অনেক কিছু করার জন্য একটি শক্তিশালী টুল।
HTTP API ব্যবহার করে Data Fetch করা JavaFX-এ বা অন্য Java অ্যাপ্লিকেশনগুলিতে একটি সাধারণ কাজ হতে পারে যখন আপনি কোন সার্ভার বা ওয়েব API থেকে ডেটা পেতে চান। HTTP API থেকে ডেটা ফেচ করার জন্য Java-তে সাধারণত HttpURLConnection
, HttpClient
(Java 11 বা তার পরে), অথবা RestTemplate
(Spring Framework) ব্যবহৃত হয়।
এখানে আমি Java 11 এর HttpClient
ক্লাস ব্যবহার করে একটি HTTP API থেকে ডেটা ফেচ করার উদাহরণ দেখাচ্ছি।
Java 11 থেকে, Java একটি বিল্ট-ইন HttpClient
API প্রদান করেছে যা HTTP রিকোয়েস্ট এবং রেসপন্স পরিচালনা করতে ব্যবহৃত হয়। এটি asynchronous এবং synchronous দুইভাবেই কাজ করতে পারে।
ধরা যাক আমরা একটি পাবলিক API থেকে ডেটা ফেচ করতে চাই, যেমন https://jsonplaceholder.typicode.com/todos/1 এই API থেকে JSON ডেটা ফেচ করবো।
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.concurrent.CompletableFuture;
public class HttpApiExample {
public static void main(String[] args) throws Exception {
// HttpClient তৈরি করা
HttpClient client = HttpClient.newHttpClient();
// HTTP GET রিকোয়েস্ট তৈরি করা
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://jsonplaceholder.typicode.com/todos/1"))
.build();
// সিঙ্ক্রোনাস HTTP রিকোয়
JavaFX-এ JSON এবং XML ডেটা প্রদর্শন করার জন্য, আপনাকে এই ডেটা ফাইলগুলি পার্স (parse) করতে হবে এবং তারপর সেগুলিকে JavaFX UI উপাদানগুলিতে প্রদর্শন করতে হবে। এখানে আমি JSON এবং XML ডেটা পার্স করার জন্য কিছু উদাহরণ দেব এবং তারপর সেই ডেটা JavaFX UI তে কিভাবে দেখানো যায় সেটি ব্যাখ্যা করব।
ধরা যাক, আপনার একটি JSON ফাইল রয়েছে যা কিছু ডাটা ধারণ করে এবং আপনি সেই ডেটা JavaFX UI তে প্রদর্শন করতে চান।
{
"name": "John Doe",
"age": 30,
"address": {
"street": "123 Main St",
"city": "Springfield"
}
}
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.beans.property.SimpleStringProperty;
import org.json.JSONObject;
public class JSONExample extends Application {
@Override
public void start(Stage primaryStage) {
// JSON ডেটা
String jsonString = "{ \"name\": \"John Doe\", \"age\": 30, \"address\": { \"street\": \"123 Main St\", \"city\": \"Springfield\" }}";
// JSON পার্স করা
JSONObject jsonObject = new JSONObject(jsonString);
// JSON থেকে ডেটা বের করা
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
JSONObject address = jsonObject.getJSONObject("address");
String street = address.getString("street");
String city = address.getString("city");
// UI উপাদান তৈরি করা
Label nameLabel = new Label("Name: " + name);
Label ageLabel = new Label("Age: " + age);
Label addressLabel = new Label("Address: " + street + ", " + city);
// VBox লেআউট
VBox vbox = new VBox(10, nameLabel, ageLabel, addressLabel);
// Scene তৈরি করা
Scene scene = new Scene(vbox, 300, 200);
// Stage সেট করা
primaryStage.setTitle("JSON Data Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Label
এর মাধ্যমে UI তে প্রদর্শন করা হয়েছে।এখন, ধরা যাক আপনার একটি XML ফাইল রয়েছে যা কিছু ডেটা ধারণ করে এবং আপনি সেই ডেটা JavaFX UI তে প্রদর্শন করতে চান।
<person>
<name>John Doe</name>
<age>30</age>
<address>
<street>123 Main St</street>
<city>Springfield</city>
</address>
</person>
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Element;
public class XMLExample extends Application {
@Override
public void start(Stage primaryStage) {
try {
// XML ডেটা স্ট্রিং
String xmlString = "<person><name>John Doe</name><age>30</age><address><street>123 Main St</street><city>Springfield</city></address></person>";
// XML ডেটা পার্স করা
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new org.xml.sax.InputSource(new java.io.StringReader(xmlString)));
// নাম, বয়স এবং ঠিকানা বের করা
NodeList nameNode = doc.getElementsByTagName("name");
NodeList ageNode = doc.getElementsByTagName("age");
NodeList streetNode = doc.getElementsByTagName("street");
NodeList cityNode = doc.getElementsByTagName("city");
String name = nameNode.item(0).getTextContent();
String age = ageNode.item(0).getTextContent();
String street = streetNode.item(0).getTextContent();
String city = cityNode.item(0).getTextContent();
// UI উপাদান তৈরি করা
Label nameLabel = new Label("Name: " + name);
Label ageLabel = new Label("Age: " + age);
Label addressLabel = new Label("Address: " + street + ", " + city);
// VBox লেআউট
VBox vbox = new VBox(10, nameLabel, ageLabel, addressLabel);
// Scene তৈরি করা
Scene scene = new Scene(vbox, 300, 200);
// Stage সেট করা
primaryStage.setTitle("XML Data Example");
primaryStage.setScene(scene);
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Label
এর মাধ্যমে UI তে প্রদর্শন করা হয়েছে।Label
, TableView
, ইত্যাদি) প্রদর্শন করা খুবই সহজ।JavaFX ব্যবহার করে আপনি JSON এবং XML ডেটা সহজেই পার্স এবং UI তে প্রদর্শন করতে পারেন। JSON ডেটা সাধারণত ওয়েব অ্যাপ্লিকেশন এবং API থেকে ডেটা পাওয়ার জন্য ব্যবহৃত হয়, এবং XML ডেটা সাধারণত কনফিগারেশন ফাইল বা অন্য ধরনের স্ট্রাকচারড ডেটা সঞ্চয় করার জন্য ব্যবহৃত হয়। JavaFX এ Label
, TableView
, ListView
ইত্যাদি উপাদান ব্যবহার করে আপনি এই ডেটাগুলি সুন্দরভাবে UI তে প্রদর্শন করতে পারেন।
JavaFX REST API Client Application তৈরি করার উদাহরণ আপনাকে একটি সাধারণ ক্লায়েন্ট অ্যাপ্লিকেশন তৈরি করতে সহায়তা করবে যা HTTP রিকোয়েস্ট পাঠিয়ে REST API থেকে ডেটা নিয়ে আসবে এবং তা UI তে প্রদর্শন করবে। এখানে আমরা JavaFX ব্যবহার করব UI তৈরি করার জন্য এবং HttpClient
ব্যবহার করব REST API কল করার জন্য।
HttpClient
API ব্যবহার করে GET রিকোয়েস্ট পাঠানো হবে।এখানে আমরা একটি পাবলিক API ব্যবহার করব (যেমন https://jsonplaceholder.typicode.com/posts
) যা JSON ডেটা ফেরত দেয় এবং সেই ডেটা JavaFX UI তে দেখানো হবে।
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.scene.control.TextArea;
import javafx.concurrent.Task;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import org.json.JSONArray;
import org.json.JSONObject;
public class RestApiClientApp extends Application {
// UI উপাদান তৈরি করা
private TextArea textArea = new TextArea();
private Button btnFetchData = new Button("Fetch Data from API");
private Label label = new Label("Press the button to fetch data");
@Override
public void start(Stage primaryStage) {
// StackPane Layout সেট করা
StackPane root = new StackPane();
root.getChildren().addAll(textArea, label, btnFetchData);
label.setTranslateY(-100);
textArea.setTranslateY(50);
textArea.setPrefSize(400, 300);
// Button-এ Action Event যোগ করা
btnFetchData.setOnAction(event -> fetchApiData());
// Scene তৈরি এবং Stage সেট করা
Scene scene = new Scene(root, 500, 400);
primaryStage.setTitle("REST API Client with JavaFX");
primaryStage.setScene(scene);
primaryStage.show();
}
// API থেকে ডেটা ফেচ করার জন্য Method
private void fetchApiData() {
// একটি নতুন Task তৈরি করা যাতে API কল ব্যাকগ্রাউন্ডে চলে
Task<String> task = new Task<String>() {
@Override
protected String call() throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://jsonplaceholder.typicode.com/posts"))
.build();
// API রেসপন্স পাঠানো
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
// রেসপন্স থেকে JSON ডেটা পার্স করা
JSONArray jsonArray = new JSONArray(response.body());
StringBuilder result = new StringBuilder();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject post = jsonArray.getJSONObject(i);
result.append("ID: ").append(post.getInt("id"))
.append("\nTitle: ").append(post.getString("title"))
.append("\nBody: ").append(post.getString("body"))
.append("\n\n");
}
return result.toString(); // API থেকে আনা ডেটা রিটার্ন করা
}
};
// Task-এর সাফল্য হলে UI আপডেট করা
task.setOnSucceeded(e -> textArea.setText(task.getValue()));
// ব্যর্থ হলে UI-তে মেসেজ প্রদর্শন করা
task.setOnFailed(e -> textArea.setText("Failed to fetch data!"));
// Task শুরু করা
new Thread(task).start();
}
public static void main(String[] args) {
launch(args);
}
}
TextArea
: এখানে API থেকে আনা ডেটা প্রদর্শিত হবে।Button
: ক্লিক করলে API কল শুরু হবে।Label
: একটি টেক্সট ডিসপ্লে করা হবে যেখানে ব্যবহারকারীকে তথ্য দেওয়া হবে।HttpClient
ব্যবহার:HttpClient
ব্যবহার করে API থেকে ডেটা ফেচ করা হচ্ছে। এখানে আমরা https://jsonplaceholder.typicode.com/posts
API ব্যবহার করেছি যা পোস্ট ডেটা ফেরত দেয়।JSONArray
এবং JSONObject
ব্যবহার করে JSON ডেটা পার্স করা হচ্ছে।Task
ক্লাস ব্যবহার:Task
ক্লাসের call()
মেথডে HTTP রিকোয়েস্ট এবং JSON পার্সিং করা হচ্ছে।এখানে আমরা jsonplaceholder.typicode.com নামক একটি পাবলিক API ব্যবহার করেছি, তবে আপনি অন্য যে কোনো REST API ব্যবহার করতে পারেন যেমন:
এই উদাহরণে আমরা JavaFX ব্যবহার করে একটি REST API Client অ্যাপ্লিকেশন তৈরি করেছি যা HTTP রিকোয়েস্ট পাঠিয়ে JSON ডেটা ফেচ করে এবং তা UI-তে প্রদর্শন করে। এখানে HttpClient এবং Task ব্যবহৃত হয়েছে যাতে API কল ব্যাকগ্রাউন্ড থ্রেডে পরিচালিত হয় এবং UI থ্রেড ব্লক না হয়।
Read more