Different Views এর মাধ্যমে Data Filtering

JSON Views ব্যবহার - জ্যাকসন (Jackson) - Java Technologies

317

Jackson-এর @JsonView এনোটেশন ব্যবহার করে বিভিন্ন ভিউ (Views) এর মাধ্যমে ডেটা ফিল্টার করা সম্ভব। এই পদ্ধতি বিশেষত API-এর মাধ্যমে বিভিন্ন প্রকার ইউজারদের জন্য বিভিন্ন ধরনের তথ্য প্রদর্শনের ক্ষেত্রে কার্যকর।


@JsonView কী এবং এটি কেন ব্যবহার করা হয়?

@JsonView Jackson-এর একটি এনোটেশন যা ক্লাস বা ফিল্ড লেভেলে ব্যবহৃত হয় এবং এটি নির্ধারণ করে কোন ভিউ-তে কোন ডেটা প্রদর্শিত হবে।

ব্যবহারিক প্রয়োগ:

  • একাধিক ইউজার টাইপের জন্য ভিন্ন ডেটা প্রদর্শন।
  • সংবেদনশীল তথ্য লুকানো।
  • API-এর প্রয়োজন অনুযায়ী ডেটা ফিল্টার করা।

কীভাবে @JsonView কাজ করে?

ধাপ ১: ভিউ ক্লাস তৈরি করুন

প্রথমে একটি বা একাধিক ভিউ ক্লাস তৈরি করুন যা বিভিন্ন ভিউ রিপ্রেজেন্ট করবে।

ধাপ ২: মডেল ক্লাসে @JsonView ব্যবহার করুন

মডেল ক্লাসে ফিল্ডগুলোর উপরে @JsonView যোগ করুন এবং নির্দিষ্ট ভিউতে সেই ফিল্ডগুলো প্রদর্শন করুন।

ধাপ ৩: ObjectMapper-এ ভিউ সেট করুন

ObjectMapper-এ নির্দিষ্ট ভিউ দিয়ে JSON serialization সম্পন্ন করুন।


উদাহরণ: Different Views দিয়ে Data Filtering

উদাহরণ JSON Data:

{
  "id": 101,
  "name": "John Doe",
  "email": "john.doe@example.com",
  "salary": 50000,
  "department": "Engineering"
}

কোড:

import com.fasterxml.jackson.annotation.JsonView;
import com.fasterxml.jackson.databind.ObjectMapper;

class Views {
    // Public View
    public static class Public {}

    // Internal View (extends Public)
    public static class Internal extends Public {}
}

class Employee {
    @JsonView(Views.Public.class)
    public int id;

    @JsonView(Views.Public.class)
    public String name;

    @JsonView(Views.Internal.class)
    public String email;

    @JsonView(Views.Internal.class)
    public double salary;

    @JsonView(Views.Public.class)
    public String department;
}

public class Main {
    public static void main(String[] args) throws Exception {
        Employee employee = new Employee();
        employee.id = 101;
        employee.name = "John Doe";
        employee.email = "john.doe@example.com";
        employee.salary = 50000;
        employee.department = "Engineering";

        ObjectMapper objectMapper = new ObjectMapper();

        // Public View serialization
        String publicViewJson = objectMapper.writerWithView(Views.Public.class).writeValueAsString(employee);
        System.out.println("Public View: " + publicViewJson);

        // Internal View serialization
        String internalViewJson = objectMapper.writerWithView(Views.Internal.class).writeValueAsString(employee);
        System.out.println("Internal View: " + internalViewJson);
    }
}

আউটপুট:

Public View:

{
  "id": 101,
  "name": "John Doe",
  "department": "Engineering"
}

Internal View:

{
  "id": 101,
  "name": "John Doe",
  "email": "john.doe@example.com",
  "salary": 50000,
  "department": "Engineering"
}

মূল ব্যবহারিক ক্ষেত্র:

  1. API Security:
    • Public API তে সংবেদনশীল তথ্য (যেমন email, salary) লুকানো।
    • Internal API-তে সম্পূর্ণ ডেটা দেখানো।
  2. ভিন্ন ভিউ ব্যবহার:
    • Frontend এবং Backend-এর জন্য আলাদা ডেটা প্রদর্শন।
    • ভিন্ন ভিউ-তে ডেটা ফিল্টার করে লোড কমানো।
  3. ডায়নামিক ডেটা প্রদর্শন:
    • একাধিক ইউজার টাইপের জন্য একক API-তে ভিন্ন ভিউ-এর ব্যবহার।

উপকারিতা:

  • Reusable View Classes: একবার ভিউ ক্লাস তৈরি করলে তা পুনরায় ব্যবহার করা যায়।
  • Readable Code: সহজে বোঝা যায় কোন ফিল্ড কোন ভিউতে যাবে।
  • Efficient Filtering: বড় JSON থেকে নির্দিষ্ট ডেটা ফিল্টার করার কার্যকর পদ্ধতি।

এই পদ্ধতিটি API ডেভেলপমেন্ট এবং ডেটা ফিল্টারিংয়ে অত্যন্ত কার্যকর এবং সহজেই পরিচালনাযোগ্য।

Content added By
Promotion

Are you sure to start over?

Loading...