এসপিআই এবং এপিআইয়ের মধ্যে পার্থক্য?


317

পরিষেবা সরবরাহকারী ইন্টারফেস (এসপিআই) এবং অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) এর মধ্যে পার্থক্য কী ?

আরও নির্দিষ্টভাবে, জাভা গ্রন্থাগারের জন্য কী তাদের এপিআই এবং / বা এসপিআই করে?

উত্তর:


394
  • এপিআই হ'ল ক্লাস / ইন্টারফেস / পদ্ধতি / ... এর বিবরণ যা আপনি কল করেন এবং লক্ষ্য অর্জনের জন্য ব্যবহার করেন এবং and
  • এসপিআই হ'ল ক্লাস / ইন্টারফেস / পদ্ধতি / ... এর বর্ণনা যা আপনি একটি লক্ষ্য অর্জনের জন্য প্রসারিত এবং বাস্তবায়ন করেন।

অন্যভাবে বলতে গেলে, API আপনাকে নির্দিষ্ট শ্রেণি / পদ্ধতিটি আপনার জন্য কি করে তা বলে দেয় এবং এসপিআই আপনাকে মেনে চলার জন্য কী করতে হবে তা আপনাকে বলে দেয়।

সাধারণত এপিআই এবং এসপিআই আলাদা হয়। উদাহরণস্বরূপ, JDBC এর মধ্যে বর্গ SPI অংশ বিশেষ: আপনি কেবল JDBC এর ব্যবহার করতে চান, তাহলে আপনি এটি সরাসরি ব্যবহার করতে হবে না, কিন্তু সবাই এমন একজন JDBC ড্রাইভার প্রয়োগ যে বর্গ বাস্তবায়ন করতে হবে।Driver

যদিও কখনও কখনও তারা ওভারল্যাপ করে। ইন্টারফেস হল উভয় SPI এবং API: আপনি এটি নিয়মিতভাবে ব্যবহার যখন আপনি একটি JDBC ড্রাইভার ব্যবহার এবং তা JDBC ড্রাইভার বিকাশকারীর দ্বারা বাস্তবায়িত করা প্রয়োজন।Connection


শুনে তো ঠিকই মনে হচ্ছে. এটি ঠিক যে এসপিআই এবং এপিআইয়ের মধ্যবর্তী রেখাগুলি কিছুটা ধূসর হতে পারে কারণ বেশিরভাগ এপিআই এর ব্যবহারকারীর কাজটি বাস্তবায়নের জন্য বিমূর্ত ক্লাস / ইন্টারফেস রয়েছে ...
কেটটাং

1
@ কোস: সর্বাধিক এপিআই? আপনি কী বলতে চাইছেন তা আমি জানি তবে আমি সেগুলি খুব একটা দেখতে পাচ্ছি না।
জোছিম সউর

2
এসপিআই বিক্রেতাদের কাছে থাকাকালীন এপিআই বিকাশকারীদের কাছে আরও বেশি সাবলীল।
আজফার নিয়াজ

7
@ আজফারনিয়াজ: ভাল, যেহেতু বিক্রেতারা তাদের পণ্য তৈরিতে বিকাশকারীদের নিয়োগ দেয় উভয়ই বিকাশকারীদের সাথে প্রাসঙ্গিক ;-)
জোচিম সৌর

জাভাতে, টীকাগুলি কি এসপিআইয়ের অংশ? উদাহরণস্বরূপ, যদি @SomeAnnotationআমার ক্লাসটি কোনও কাঠামোর দ্বারা বাছাইয়ের জন্য আমাকে যুক্ত করতে হয় SomeAnnotation.classতবে আমি প্রযুক্তিগতভাবে এটি বাড়িয়ে বা বাস্তবায়ন না করেও কি এই টীকাগুলি এসপিআইয়ের অংশ হিসাবে বিবেচিত হবে?
অ্যাডাম বারলে

59

কার্যকর জাভা থেকে , দ্বিতীয় সংস্করণ :

পরিষেবা সরবরাহকারী কাঠামো হ'ল এমন একটি সিস্টেম যা একাধিক পরিষেবা সরবরাহকারী একটি পরিষেবা প্রয়োগ করে এবং সিস্টেমটি তাদের ক্লায়েন্টদের জন্য বাস্তবায়নগুলি উপলব্ধ করে, বাস্তবায়নগুলি থেকে তাদের ডিকপল করে।

পরিষেবা সরবরাহকারী কাঠামোর তিনটি প্রয়োজনীয় উপাদান রয়েছে: একটি পরিষেবা ইন্টারফেস, যা সরবরাহকারী কার্যকর করে; একটি সরবরাহকারী নিবন্ধকরণ এপিআই, যা সিস্টেম বাস্তবায়নগুলি নিবন্ধকরণ করতে ব্যবহার করে, ক্লায়েন্টদের তাদের অ্যাক্সেস দেয়; এবং একটি পরিষেবা অ্যাক্সেস এপিআই, যা ক্লায়েন্টরা পরিষেবার একটি উদাহরণ পেতে ব্যবহার করে। পরিষেবা অ্যাক্সেস এআইপিআই সাধারণত সরবরাহ করে বাছাই করার জন্য ক্লায়েন্টকে কিছু মানদণ্ড নির্দিষ্ট করার প্রয়োজন হয় না। যেমন একটি নির্দিষ্টকরণের অভাবে, API একটি ডিফল্ট বাস্তবায়নের উদাহরণ দেয়। পরিষেবা অ্যাক্সেস API হ'ল "নমনীয় স্ট্যাটিক কারখানা" যা পরিষেবা সরবরাহকারীর কাঠামোর ভিত্তি তৈরি করে।

পরিষেবা সরবরাহকারী কাঠামোর একটি alচ্ছিক চতুর্থ উপাদান হ'ল একটি পরিষেবা সরবরাহকারী ইন্টারফেস, যা সরবরাহকারীরা তাদের পরিষেবা বাস্তবায়নের উদাহরণ তৈরি করতে প্রয়োগ করে। পরিষেবা সরবরাহকারী ইন্টারফেসের অভাবে, বাস্তবায়নগুলি শ্রেণীর নাম দ্বারা নিবন্ধিত হয় এবং প্রতিবিম্বিতভাবে প্রতিস্থাপন করা হয় (আইটেম 53)। জেডিবিসি-র ক্ষেত্রে, সংযোগটি সার্ভিস ইন্টারফেসের অংশ হিসাবে কাজ করে, ড্রাইভার-ম্যানেজ.গ্রিজিস্টারড্রাইভার সরবরাহকারীর রেজিস্ট্রেশন এপিআই, ড্রাইভারমনেজ.আরজেক্ট কানেকশন হ'ল সার্ভিস অ্যাক্সেস এপিআই, এবং ড্রাইভার হ'ল সার্ভিস প্রোভাইডার ইন্টারফেস।

পরিষেবা সরবরাহকারীর ফ্রেমওয়ার্ক প্যাটার্নের অসংখ্য বৈচিত্র রয়েছে। উদাহরণস্বরূপ, পরিষেবা অ্যাক্সেস এপিআই অ্যাডাপ্টার প্যাটার্ন ব্যবহার করে সরবরাহকারীর প্রয়োজনের তুলনায় আরও সমৃদ্ধ পরিষেবা ইন্টারফেসটি ফিরিয়ে আনতে পারে [গামা 95, পি। 139]। পরিষেবা সরবরাহকারী ইন্টারফেস এবং একটি ডিফল্ট সরবরাহকারীর সাথে এখানে একটি সাধারণ বাস্তবায়ন:

// Service provider framework sketch

// Service interface
public interface Service {
    ... // Service-specific methods go here
}

// Service provider interface
public interface Provider {
    Service newService();
}

// Noninstantiable class for service registration and access
public class Services {
    private Services() { }  // Prevents instantiation (Item 4)

    // Maps service names to services
    private static final Map<String, Provider> providers =
        new ConcurrentHashMap<String, Provider>();
    public static final String DEFAULT_PROVIDER_NAME = "<def>";

    // Provider registration API
    public static void registerDefaultProvider(Provider p) {
        registerProvider(DEFAULT_PROVIDER_NAME, p);
    }
    public static void registerProvider(String name, Provider p){
        providers.put(name, p);
    }

    // Service access API
    public static Service newInstance() {
        return newInstance(DEFAULT_PROVIDER_NAME);
    }
    public static Service newInstance(String name) {
        Provider p = providers.get(name);
        if (p == null)
            throw new IllegalArgumentException(
                "No provider registered with name: " + name);
        return p.newService();
    }
}

3
পরিষেবা সরবরাহকারীর কাঠামোর উপর খুব সুন্দর বর্ণনার জন্য ধন্যবাদ। এটি জানতে দরকারী হবে। তবে এটি এপিআই ও স্পির মধ্যে "পার্থক্য" স্পষ্টভাবে বর্ণনা করে না তাই আমি এখানে একটি টিক
লাগাব না

23

এপিআই এবং এসপিআইয়ের মধ্যে পার্থক্য আসে যখন কোনও এপিআই অতিরিক্তভাবে কিছু কংক্রিট বাস্তবায়ন সরবরাহ করে। সেক্ষেত্রে পরিষেবা সরবরাহকারীকে কয়েকটি এপিআই প্রয়োগ করতে হবে (এসপিআই নামে পরিচিত)

একটি উদাহরণ জেএনডিআই:

জেএনডিআই ইন্টারফেস এবং প্রসঙ্গ দেখার জন্য কিছু ক্লাস সরবরাহ করে। প্রসঙ্গ দেখার জন্য ডিফল্ট উপায় ইনটালকন্টেক্সটে সরবরাহ করা হয়েছে। এই শ্রেণিটি অভ্যন্তরীণভাবে সরবরাহকারীর নির্দিষ্ট প্রয়োগের জন্য এসপিআই ইন্টারফেস (নামকরণম্যানেজার ব্যবহার করে) ব্যবহার করবে।

আরও ভাল বোঝার জন্য নীচের জেএনডিআই আর্কিটেকচারটি দেখুন।

এখানে চিত্র বিবরণ লিখুন


22

এপিআই মানে অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস, যেখানে এপিআই কোনও ধরণের সফ্টওয়্যার বা প্ল্যাটফর্ম দ্বারা সরবরাহিত কোনও পরিষেবা / ফাংশন অ্যাক্সেস করার একটি মাধ্যম।

এসপিআই হ'ল সার্ভিস প্রোভাইডার ইন্টারফেস, যেখানে এসপিআই হল সফ্টওয়্যার বা প্ল্যাটফর্মের জন্য ব্যবহার, প্রসার বা আচরণ পরিবর্তন করার উপায়।

এপিআই সাধারণত ক্লায়েন্টদের একটি পরিষেবা অ্যাক্সেস করার জন্য লক্ষ্যযুক্ত এবং এতে নিম্নলিখিত বৈশিষ্ট্য থাকে:

-> এপিআই একটি নির্দিষ্ট আচরণ বা আউটপুট অর্জনের জন্য পরিষেবা অ্যাক্সেস করার একটি প্রোগ্রামিক পদ্ধতি

-> এপিআই বিবর্তনের দিক থেকে দেখুন, ক্লায়েন্টদের জন্য সংযোজন কোনও সমস্যা নয় all

-> তবে এপিআই একবার ক্লায়েন্টদের দ্বারা ব্যবহার করা হয়েছে তবে উপযুক্ত যোগাযোগ না থাকলে এটি পরিবর্তন করতে / মুছে ফেলা যায় না, কারণ এটি ক্লায়েন্টের প্রত্যাশার সম্পূর্ণ অবক্ষয় হয়

অন্য অংশের এসপিআই সরবরাহকারীদের জন্য লক্ষ্যযুক্ত এবং নিম্নলিখিত বৈশিষ্ট্যগুলি রয়েছে:

-> এসপিআই হ'ল একটি সফ্টওয়্যার বা প্ল্যাটফর্মের আচরণকে প্রসারিত / পরিবর্তন করার একটি উপায় (প্রোগ্রামেবল বনাম প্রোগ্রামিং)

-> এসপিআই বিবর্তন এপিআই বিবর্তনের থেকে পৃথক, এসপিআই অপসারণ কোনও সমস্যা নয়

-> এসপিআই ইন্টারফেস যুক্ত করার ফলে সমস্যা দেখা দেবে এবং বিদ্যমান বাস্তবায়নগুলি ভেঙে যেতে পারে

আরও ব্যাখ্যার জন্য এখানে ক্লিক করুন: পরিষেবা সরবরাহকারী ইন্টারফেস


12

নেটবিনসের এফএকিউ: এসপিআই কী? এটি একটি এপিআই থেকে কীভাবে আলাদা?

এপিআই হ'ল একটি সাধারণ শব্দ - অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেসের একটি সংক্ষিপ্ত রূপ - এর অর্থ কিছুটা (জাভাতে সাধারণত কিছু জাভা ক্লাসে) একটি টুকরা সফটওয়্যার প্রকাশিত হয় যা অন্য সফ্টওয়্যারকে এর সাথে যোগাযোগের অনুমতি দেয়।

এসপিআই এর অর্থ সার্ভিস প্রোভাইডার ইন্টারফেস। এটি এমন সমস্ত জিনিসের একটি উপসেট যা এপিআই নির্দিষ্ট হতে পারে এমন পরিস্থিতিতে যেখানে অ্যাপ্লিকেশন (বা এপিআই লাইব্রেরি) দ্বারা ডাকা হয় এমন একটি লাইব্রেরি ক্লাস সরবরাহ করে যা অ্যাপ্লিকেশন করতে সক্ষম জিনিসগুলিতে সাধারণত পরিবর্তন করে।

ক্লাসিক উদাহরণটি জাভামেল। এর এপিআইয়ের দুটি পক্ষ রয়েছে:

  • আপনি যদি কোনও মেল ক্লায়েন্ট লিখতে থাকেন বা মেলবক্সটি পড়তে চান তবে এপিআই সাইডটি call
  • আপনি যদি জাভামেলকে কোনও নতুন ধরণের সার্ভারের সাথে কথা বলার অনুমতি দেওয়ার জন্য কোনও ওয়্যার-প্রোটোকল হ্যান্ডলার সরবরাহ করছেন তবে এসপিআই পক্ষ, যেমন কোনও সংবাদ বা আইএমএপি সার্ভার

এপিআই ব্যবহারকারীদের খুব কমই এসপিআই ক্লাসে দেখা বা কথা বলা প্রয়োজন, এবং তদ্বিপরীত।

নেটবিয়ানসে, আপনি যখন এসপিআই শব্দটি দেখেন, সাধারণত এটি এমন ক্লাসগুলির বিষয়ে কথা বলা হয় যেগুলি মডিউল রানটাইমের সময় ইনজেক্ট করতে পারে যা নেটবিয়ানদের নতুন জিনিস করতে দেয়। উদাহরণস্বরূপ, সংস্করণ নিয়ন্ত্রণ ব্যবস্থা বাস্তবায়নের জন্য একটি সাধারণ এসপিআই রয়েছে। বিভিন্ন মডিউল সিভিএস, সাবভার্সন, মার্কুরিয়াল এবং অন্যান্য সংশোধন নিয়ন্ত্রণ সিস্টেমের জন্য সেই এসপিআই এর বাস্তবায়ন সরবরাহ করে। যাইহোক, ফাইলগুলি (এপিআই সাইড) এর সাথে সম্পর্কিত কোডটি কোনও সংস্করণ নিয়ন্ত্রণ ব্যবস্থা আছে বা এটি কী তা যত্ন নেওয়ার দরকার নেই।


5

একটি দিক রয়েছে যা এটিকে হাইলাইট করা বেশি বলে মনে হয় না তবে এপিআই / এসপিআই বিভক্তির অস্তিত্বের পেছনের যুক্তিটি বোঝার জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।

প্ল্যাটফর্মটি বিকশিত হওয়ার আশা করা হয় কেবল তখনই API / SPI বিভাজন প্রয়োজন। আপনি যদি একটি এপিআই লিখেন এবং "জানেন" তবে এর জন্য ভবিষ্যতের কোনও উন্নতির প্রয়োজন হবে না, আপনার কোডটি দুটি অংশে বিভক্ত করার কোনও সত্য কারণ নেই (ক্লিন অবজেক্ট ডিজাইনের পাশাপাশি)।

তবে এটি প্রায়শই হয় না এবং পশ্চাদপদ সামঞ্জস্যপূর্ণ পদ্ধতিতে - ভবিষ্যতের প্রয়োজনীয়তার সাথে একত্রে API বিকাশের স্বাধীনতা থাকা দরকার।

নোট করুন যে উপরের সমস্তটি আপনি ধরে নিয়েছেন যে আপনি প্ল্যাটফর্মটি তৈরি করছেন যা অন্যান্য লোকেরা ব্যবহার করে এবং / অথবা প্রসারিত করে না এবং আপনার নিজস্ব এপিআই নয় যেখানে আপনার সমস্ত ক্লায়েন্ট কোড নিয়ন্ত্রণে রয়েছে এবং এইভাবে আপনার প্রয়োজন অনুযায়ী রিফ্যাক্টর পারেন can

যাক এটি পরিচিত জাভাগুলির মধ্যে একটিতে দেখাতে Collectionএবং Collections


এপিআই: Collections ইউটিলিটি স্ট্যাটিক পদ্ধতির একটি সেট। প্রায়শই এপিআই বিষয়বস্তুর প্রতিনিধিত্ব করে এমন ক্লাসগুলি সংজ্ঞায়িত করা finalহিসাবে সংজ্ঞায়িত করা হয় (সংকলনের সময়) যে কোনও ক্লায়েন্ট কখনও সেই বস্তুকে "প্রয়োগ" করতে পারে না এবং তারা তার স্থিতিশীল পদ্ধতিগুলিকে "কলিং" উপর নির্ভর করতে পারে , যেমন

Collections.emptySet();

যেহেতু সব ক্লায়েন্টদের হয় "কলিং" কিন্তু না "বাস্তবায়নে" , JDK এর লেখক হয় নতুন পদ্ধতি যোগ করুন মুক্ত মধ্যে CollectionsJDK এর ভবিষ্যৎ সংস্করণে অবজেক্ট। তারা নিশ্চিত হতে পারে যে এটি কোনও ক্লায়েন্টকে ভেঙে ফেলতে পারে না, এমনকি সম্ভবত ব্যবহারের মিলিয়নস থাকলেও।


এসপিআই: Collection এমন একটি ইন্টারফেস যা বোঝায় যে যে কেউ এর নিজস্ব সংস্করণটি প্রয়োগ করতে পারে। সুতরাং, জেদেকে লেখকরা এতে নতুন পদ্ধতি যুক্ত করতে পারবেন না কারণ এটি তাদের নিজস্ব Collectionপ্রয়োগকারী (*) লিখেছেন এমন সমস্ত ক্লায়েন্টকে ভেঙে দেবে ।

সাধারণত যখন অতিরিক্ত পদ্ধতি যুক্ত করার প্রয়োজন হয়, নতুন ইন্টারফেস, যেমন Collection2পূর্ববর্তীটিকে প্রসারিত করা প্রয়োজন। এসপিআই ক্লায়েন্ট তখন সিদ্ধান্ত নিতে পারে যে এসপিআইয়ের নতুন সংস্করণে স্থানান্তরিত হবে এবং এটির অতিরিক্ত পদ্ধতিটি প্রয়োগ করবে বা পুরানোটির সাথে আটকে থাকবে কিনা।


আপনি ইতিমধ্যে পয়েন্টটি দেখতে পেয়েছেন। যদি আপনি উভয় টুকরা একক শ্রেণিতে একত্রিত করেন তবে আপনার এপিআই কোনও সংযোজন থেকে অবরুদ্ধ করা হবে। abstract classপশ্চাদপদ সামঞ্জস্যের ক্ষেত্রে তারা তাদের ভবিষ্যত বিবর্তনকে অবরুদ্ধ করবে বলে ভাল জাভা এপিআই এবং ফ্রেমওয়ার্ক প্রকাশ না করার কারণও এটি।

যদি এখনও কিছু অস্পষ্ট থাকে তবে আমি এই পৃষ্ঠাটি যাচাই করার পরামর্শ দিচ্ছি যা উপরের আরও বিশদে ব্যাখ্যা করে।


(*) দ্রষ্টব্য এটি কেবল জাভা ১.৮ অবধি সত্য, যা defaultকোনও ইন্টারফেসে সংজ্ঞায়িত পদ্ধতিগুলির ধারণা প্রবর্তন করে ।


4

আমি একটি এপিআই-র নির্দিষ্ট বৈশিষ্ট্যগুলি প্রয়োগ করে এবং তারপরে পরিষেবা অনুসন্ধানের ব্যবস্থার মাধ্যমে উপলব্ধ হিসাবে নিজেকে নিবন্ধিত করে একটি এসপিআই স্লটকে বৃহত্তর সিস্টেমে রূপান্তর করি। একটি এপিআই সরাসরি ব্যবহারকারীর অ্যাপ্লিকেশন কোড দ্বারা ব্যবহৃত হয় তবে এসপিআই উপাদানগুলিকে একীভূত করতে পারে। এটি encapsulation এবং সরাসরি ব্যবহারের মধ্যে পার্থক্য।


প্রতিক্রিয়া খ্রিস্টের জন্য ধন্যবাদ বিদ্যমান জাভা (উদাহরণস্বরূপ সার্লেট, জেডিবিসি, ইত্যাদি) এর কোনও উদাহরণ? ... এটি কীভাবে তাদের এপিআই / এসপিআই করে তোলে like একা বর্ণনার সাথে পার্থক্যটি কল্পনা করা কঠিন হতে পারে।
কেটিটাং

1
একটি এপিআই হ'ল জেডিবিসি, জেডিবিসির জন্য একটি এসপিআই হ'ল ডেটাবেস সংযোগকারী ইন্টারফেস যা এসপিআই বিকাশকারীরা নতুন ডেটাবেস সংযোগকারী তৈরি করতে ব্যবহার করতে পারেন যা বিকাশকারী ব্যবহারের জন্য বেছে নিতে পারেন।
ক্রিস ডেনেট

4

পরিষেবা সরবরাহকারী ইন্টারফেস হ'ল পরিষেবা ইন্টারফেস যা সমস্ত সরবরাহকারীদের অবশ্যই প্রয়োগ করতে হবে। যদি বিদ্যমান সরবরাহকারীর বাস্তবায়নগুলির কোনও আপনার পক্ষে কাজ করে না, আপনার নিজের পরিষেবা সরবরাহকারী (সার্ভিস ইন্টারফেস বাস্তবায়ন) লিখতে হবে এবং কোথাও নিবন্ধন করতে হবে (রোমানের দরকারী পোস্টটি দেখুন)।

আপনি যদি পরিষেবা ইন্টারফেসের বিদ্যমান সরবরাহকারীর প্রয়োগটি পুনরায় ব্যবহার করছেন, আপনি মূলত সেই নির্দিষ্ট সরবরাহকারীর এপিআই ব্যবহার করছেন, যার মধ্যে পরিষেবা ইন্টারফেসের সমস্ত পদ্ধতি এবং এর নিজস্ব কয়েকটি পাবলিক পদ্ধতি অন্তর্ভুক্ত রয়েছে। আপনি যদি এসপিআই এর বাইরে সরবরাহকারী এপিআইয়ের পদ্ধতিগুলি ব্যবহার করেন তবে আপনি সরবরাহকারীর নির্দিষ্ট বৈশিষ্ট্যগুলি ব্যবহার করছেন।


2

জাভা বিশ্বে, বিভিন্ন প্রযুক্তি বোঝায় একটি অ্যাপ্লিকেশন সার্ভারে মডুলার এবং "প্লাগযোগ্য"। এর মধ্যে তফাত রয়েছে

  • অ্যাপ্লিকেশন সার্ভার
    • [SPI]
  • প্লাগযোগ্য প্রযুক্তি
    • [এপিআই]
  • শেষ ব্যবহারকারী অ্যাপ্লিকেশন

এই জাতীয় প্রযুক্তির দুটি উদাহরণ হ'ল জেটিএ (লেনদেন পরিচালক) এবং জেসিএ (জেএমএস বা ডাটাবেসের জন্য অ্যাডাপ্টার)। তবে অন্যরাও আছেন।

এই জাতীয় প্লাগেবল প্রযুক্তির ইমপ্লিমেন্টারের অবশ্যই অ্যাপ্লিকেশনটিতে প্লাগেবল হওয়ার জন্য এসপিআই প্রয়োগ করতে হবে। সার্ভার এবং শেষ ব্যবহারকারী অ্যাপ্লিকেশন দ্বারা ব্যবহৃত একটি API সরবরাহ। জেসিএর একটি উদাহরণ হ'ল ম্যানেজড কানেকশন ইন্টারফেস যা এসপিআইয়ের একটি অংশ, এবং সংযোগ যা শেষ ব্যবহারকারীর এপিআইয়ের অংশ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.