API:টিউটোরিয়াল

From mediawiki.org
This page is a translated version of the page API:Tutorial and the translation is 91% complete.

এই টিউটোরিয়ালে, আপনি MediaWiki Action API সম্পর্কে শিখবেন, এটি কীভাবে ব্যবহার করবেন, অনুরোধ বিন্যাস, একটি সাধারণ প্রশ্ন, এবং Action API ব্যবহার করে প্রজেক্টের উদাহরণ।

মিডিয়াউইকি Action API-র ওভারভিউ

মিডিয়াউইকি Action API হল একটি RESTপূর্ণ যা ব্যবহারকারীদের কিছু উইকি-ক্রিয়া সম্পাদন করতে দেয় যেমন পৃষ্ঠা তৈরি, প্রমাণীকরণ, পার্সিং, অনুসন্ধান, ইত্যাদি API বোঝার জন্য API:প্রধান পৃষ্ঠা একটি ভাল সূচনা পয়েন্ট।

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

এই পৃষ্ঠার ডান সাইডবারে, বিভাগ দ্বারা গোষ্ঠীবদ্ধ, API দ্বারা সমর্থিত অনেক বৈশিষ্ট্য রয়েছে। উইকি সার্ভারে অনুরোধ পাঠানোর আগে, প্রথমে ডেটা ফরম্যাট, ত্রুটি এবং সতর্কতা, এবং Action API FAQ-এর মতো ওভারভিউ পৃষ্ঠাগুলি পড়ুন।

কিভাবে মিডিয়াউইকি Action API ব্যবহার করবেন

আপনি -র মাধ্যমে ক্লায়েন্ট সাইড থেকে সার্ভারে ডেটার জন্য অনুরোধ করতে পারেন এবং একটি আদর্শ বিন্যাসে (সাধারণত ) প্রতিক্রিয়া পেতে পারেন। একটি অনুরোধ একটি শেষ পয়েন্ট এবং পরামিতিগুলির একটি সেট নিয়ে গঠিত। দুই ধরনের অনুরোধ করা যেতে পারে: GET এবং POST। একটি GET অনুরোধের জন্য, একটি প্যারামিটারে URL-এ একটি ক্যোয়ারী স্ট্রিং থাকবে। একটি POST অনুরোধের জন্য, প্যারামিটারগুলিকে বিন্যাসে বিন্যাস করুন।

অনুরোধ বিন্যাস

সমস্ত উইকিমিডিয়া উইকির এই বিন্যাসে http://example.org/w/api.php এন্ডপয়েন্ট রয়েছে। মিডিয়াউইকি প্রধান সাইট বা ইংরেজি উইকিপিডিয়ায় কাজ করতে, সংশ্লিষ্ট এন্ডপয়েন্ট ব্যবহার করুন। উদাহরণ স্বরূপ, ইংরেজি উইকিপিডিয়ার মূল্য https://en.wikipedia.org/w/api.php হল নতুন অ্যাকাউন্ট পরীক্ষা করার জন্য বা পৃষ্ঠাগুলিতে সম্পাদনা পরীক্ষা করার জন্য, পরীক্ষা উইকি এন্ডপয়েন্ট https://test.wikipedia.org/w/api.php ব্যবহার করুন।

URL-এর ক্যোয়ারী স্ট্রিং-এ action প্যারামিটার যোগ করুন। এটি API কে বলে যে কোন ক্রিয়াটি সম্পাদন করতে হবে। সবচেয়ে জনপ্রিয় অ্যাকশন হল query (ইউআরএলে action=query) থাকবে, যা উইকি থেকে ডেটা আনার অনুমতি দেয়। action প্যারামিটার অনুসরণ করে, আপনি তিনটি ক্যোয়ারী মডিউল প্রকারের মধ্যে কোনটি সম্পাদন করতে চান তা নির্দেশ করতে অন্য প্যারামিটার যোগ করুন:

  • prop - পৃষ্ঠাগুলির বৈশিষ্ট্য পান  
  • list - একটি নির্দিষ্ট মানদণ্ডের সাথে মিলে যাওয়া পৃষ্ঠাগুলির তালিকা পান
  • meta - উইকি এবং ব্যবহারকারী সম্পর্কে মেটা তথ্য পান

অবশেষে, format প্যারামিটার অন্তর্ভুক্ত করুন, যা API-কে বলে যে কোন ফর্ম্যাটে ফলাফল পেতে হবে। প্রস্তাবিত বিন্যাস হল JSON। এপিআই অতীতে অন্যান্য আউটপুট ফরম্যাট সমর্থিত, কিন্তু সেগুলি সাধারণত সুপারিশ করা হয় না।

Request format
Request format

একটি সহজ প্রশ্ন

Action API-এর প্রসঙ্গে একটি সাধারণ GET অনুরোধ এবং প্রতিক্রিয়া কেমন হবে তা বোঝার জন্য একটি সাধারণ প্রশ্নের উদাহরণ নেওয়া যাক।

আসুন উইকিতে একটি শিরোনাম অনুসন্ধান করি। আমরা API:অনুসন্ধান -এ নথিভুক্ত search মডিউল ব্যবহার করব।

অনুরোধ পান

পৃষ্ঠার শিরোনাম বা Craig Noone-এর সাথে মেলে এমন সামগ্রী অনুসন্ধান করতে, HTTP GET অনুরোধের URLটি হবে:

URL-এর প্রতিটি অংশের ব্যাখ্যা:

  • http://en.wikipedia.org/w/api.php হল মূল শেষ পয়েন্ট। এই ক্ষেত্রে এটি ইংরেজি উইকিপিডিয়া।
  • action=query মানে উইকি থেকে ডেটা আনা।
  • list=search মানে একটি মানদণ্ডের সাথে মিলে যাওয়া পৃষ্ঠাগুলির তালিকা পান৷
  • srsearch=Craig%20Noone পৃষ্ঠার শিরোনাম বা বিষয়বস্তু অনুসন্ধান করতে নির্দেশ করে। %20 একটি URL-এ একটি স্পেস অক্ষর নির্দেশ করে।
  • format=json JSON আউটপুট নির্দেশ করে, যা প্রস্তাবিত আউটপুট বিন্যাস।

প্রতিক্রিয়া

প্রতিক্রিয়া হল একটি JSON ফরম্যাট নথি যার সাথে পৃষ্ঠার শিরোনামগুলির একটি তালিকা যা Craig Noone-এর সাথে মেলে:

{
    "batchcomplete": "",
    "continue": {
        "sroffset": 10,
        "continue": "-||"
    },
    "query": {
        "searchinfo": {
            "totalhits": 210
        },
        "search": [
            {
                "ns": 0,
                "title": "Craig Noone",
                "pageid": 18846922,
                "size": 22548,
                "wordcount": 1771,
                "snippet": "<span class=\"searchmatch\">Craig</span> Stephen <span class=\"searchmatch\">Noone</span> (born 17 November 1987) is an English professional footballer who plays as a winger for Bolton Wanderers. Born in Kirkby, he has also",
                "timestamp": "2018-11-02T22:25:45Z"
            },
            {
                "ns": 0,
                "title": "Noone",
                "pageid": 32906333,
                "size": 553,
                "wordcount": 64,
                "snippet": "<span class=\"searchmatch\">Noone</span> is a surname that may refer to:  <span class=\"searchmatch\">Craig</span> <span class=\"searchmatch\">Noone</span> (born 1987), English football midfielder Jimmie <span class=\"searchmatch\">Noone</span> (1895–1944), American jazz clarinetist Kathleen",
                "timestamp": "2015-08-16T05:16:17Z"
            }
            ...
        ]
    }
}


Action API ব্যবহার করে প্রকল্পের উদাহরণ

উইকিমিডিয়ার কিছু প্রকল্পের উদাহরণ যা Action API ব্যবহার করে:

  • উইকিপিডিয়া iOS অ্যাপ, যার মধ্যে একটি বৈশিষ্ট্য হল আপনার অবস্থানের কাছাকাছি উইকি পৃষ্ঠাগুলি অনুসন্ধান করা।
  • বট যেগুলো উইকিতে কাজ করে। Pywikibot পাইথনে লেখা একটি বট ফ্রেমওয়ার্ক যা মিডিয়াউইকি API এর সাথে ইন্টারফেস করে যা অনেক বট বিকাশকারী ব্যবহার করে।
  • উইকি থেকে প্রাপ্ত ডেটা ভিজ্যুয়ালাইজ করার ক্ষেত্রে API ব্যবহার। যেমন এই ঝরঝরে ভিজ্যুয়ালাইজেশন যা উইকিপিডিয়ায় করা রিয়েল টাইম সম্পাদনা দেখায়।

অতিরিক্ত নোট

  • বেশ কিছু সাইট মিডিয়াউইকি ব্যবহার করছে। তারা সবাই হয়তো মিডিয়াউইকির একটি ভিন্ন সংস্করণ চালাচ্ছে এবং পরিবর্তে API। একটি সংস্করণে সমর্থিত কিছু মডিউল পরামিতি অন্য সংস্করণে অবচয় বা সরানো হতে পারে। আপনি API সাহায্য মডিউল এর মাধ্যমে প্রতিটি মডিউলের ডকুমেন্টেশনে এটি সম্পর্কে জানতে পারেন।
  • আপনি যদি প্রচুর API কল করতে চান, এবং সম্ভবত খুব ব্যস্ত এবং সক্রিয় বট চালাতে চান, তাহলে আগে থেকেই উইকি অ্যাডমিনদের সাথে কথা বলুন, যাতে তারা আপনাকে ব্লক না করে। উইকিমিডিয়া প্রকল্পের প্রশাসকদের তালিকা দেখুন। API:Etiquette এ এই বিষয় সম্পর্কে আরও পড়ুন।
  • লগিং, সম্পাদনা বা একটি পৃষ্ঠা সরানোর মতো সমস্ত ডেটা পরিবর্তন করার জন্য এবং পরিবর্তনগুলি দেখা বা টহল দেওয়ার জন্য টোকেনের প্রয়োজন হবে। আরও এগিয়ে যাওয়ার জন্য আপনাকে API:Tokens এর মাধ্যমে টোকেন পেতে হবে।

সম্পদ