আমার RESTful এপিআই বর্ণনা করতে কি আমার WADL ব্যবহার করা উচিত?


27

আমি এমন একটি প্রকল্পে যাচ্ছি যা সঠিকভাবে বিশ্রামের পদ্ধতির ব্যাপক ব্যবহার করে। এটি হেটোএএস ব্যবহার করে এবং এমন উপায়ে সংস্থানগুলি সরবরাহ করে যা কোনও ক্লায়েন্টের দ্বারা সাধারণ অনুসন্ধানের অনুমতি দেয়।

আমি নিশ্চিত করতে চাই যে আমি আমার এন্ডপয়েন্টগুলির একটি বিবরণ এমনভাবে সরবরাহ করব যাতে ক্লায়েন্ট অ্যাপ্লিকেশনগুলি বিভিন্ন ভাষায় স্বয়ংক্রিয়ভাবে উত্পন্ন হতে পারে। আমি বুঝতে পারি যে এসওএপি ভিত্তিক ওয়েব পরিষেবাদিগুলির জন্য আমি ডাব্লুএসডিএল ব্যবহার করতে পারি এবং স্পষ্টতই ডাব্লুএসডিএল 2 রয়েছে যা REST এর সাথে ব্যবহারের ক্ষেত্রে HTTP ক্রিয়াগুলির বৃহত্তর সংজ্ঞা সরবরাহ করে। তবে আমি দেখতে পাচ্ছি অনেকগুলি নিবন্ধ তার ইউটিলিটিটির জন্য পিছনে পিছনে দুলছে।

সুতরাং, আমি কি আমার ওয়েব অ্যাপ্লিকেশনের জন্য বাহ্যিক কোড জেনারেটরকে দ্রুত ক্লায়েন্ট তৈরি করার অনুমতি দেওয়ার জন্য ডাব্লুএইচডিএল ব্যবহার করা উচিত বা এর চেয়ে আরও ভাল মানের কী আশা করা যায়?


1
বাহ - 2 দিন এবং গলা ফাটানোর মধ্য দিয়ে বাতাসের কেবল শান্ত আলোড়ন ...
গ্যারি রোউ

একেবারে না. ডাব্লুএইচএলস সম্ভবত আমি সবচেয়ে খারাপ এপিআই ডকুমেন্টার হতে পেরেছি।
দ্য কোডিংআর্ট

উত্তর:


18

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

ডাব্লুএইচডিএল বর্ণনাগুলি নির্মাণে সময় সাশ্রয়ী (এবং বেশিরভাগ ম্যানুয়াল) এবং এগুলি হিটোয়াস এড়ানোর জন্য নকশাকৃত একটি ভঙ্গুরতা যুক্ত করে - যেমন আপনার কয়েকটি ভাল সংজ্ঞায়িত এন্ট্রি পয়েন্ট থাকবে তবে ঠিক কীভাবে আপনার ক্লায়েন্টের আয়টি অস্বচ্ছ লিঙ্কগুলি দ্বারা নির্ধারিত হবে, পূর্বনির্ধারিত নয় 'চুক্তি'।

এটি আপনার ডকুমেন্টেশন, স্কিমা সংজ্ঞা ইত্যাদি থেকে পুরোপুরি পালাতে হবে তা বলার অপেক্ষা রাখে না, যদিও সেখানে রেস্ট্রিফেরিয়ান বর্ণালীটির একটি সমাপ্তি রয়েছে যা আপনাকে বোঝাতে পারে না যে এ জাতীয় উচ্চ-স্তরের স্ব-বিবরণের প্রয়োজন হয় না। বাস্তবে আমি এটিকে দেখতে পাইনি। কয়েকটি শক্ত কাজের উদাহরণ সমস্ত অপরিচিত বিকাশকারী প্রয়োজন needs এবং এটি ব্যবহার করে দেখার জন্য আপনার নিজস্ব API এর জন্য কয়েকটি ক্লায়েন্টকে নক করুন J (JQuery থেকে যথেষ্ট সহজ)। আপনি গ্রহণযোগ্য কিছু তৈরি করছেন কিনা তা আপনাকে একটি ভাল ইঙ্গিত দেয়।

এই অঞ্চলে তথ্যের একটি ভাল উত্স হায়পারটেক্সট অ্যাপ্লিকেশন ভাষা । আমি এর কিছুটা একটু হেভিওয়েট পেয়েছি, তবে মেলিং তালিকার বিতর্কগুলি ভাল এবং বর্তমান এবং প্রাসঙ্গিক।

আশা করি এটি আপনাকে শুরু করতে সহায়তা করে।


2
একটি ভাল উত্তরের জন্য +1। এটি আমার সম্পর্কে যে সন্দেহ ছিল তা নিশ্চিত করে এবং আমার বর্তমান পদ্ধতির পুনরায় জোর দিয়ে জানায় (এটি সত্যই কতটা আবর্জনা তা দেখতে আপনার নিজস্ব API ব্যবহার করুন)।
গ্যারি রোউ

5

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

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

তবুও এটি বলছে যে আমার এক সহকর্মী একটি লাইব্রেরিতে কয়েক মাস সময় কাটিয়েছে যা কোনও পরিষেবাতে একটি আরএসটি ইন্টারফেস ব্যবহার করে এবং একই পরিষেবাটির ডাব্লুএসডিএল-বর্ণিত ইন্টারফেসটি [*] সেকেন্ডের মধ্যে স্বয়ংক্রিয়ভাবে প্রায় একই মানের হয়ে যায়; বাকি পথে যাওয়া মোড়ক ক্লাস রচনার এক দিন ছিল। আমার হুং (একটি সীমাবদ্ধ নমুনার আকারের উপর ভিত্তি করে) হ'ল আপনি কোনও জটিল সেবার মধ্যে সমস্ত ভঙ্গুরতা থেকে মুক্তি পেতে পারবেন না কারণ সময়ের সাথে সাথে সেবারের শব্দার্থকতা অবশ্যম্ভাবীভাবে বিকশিত হবে এবং এসইএপি-র জন্য এসওএপি-র জন্য আরও ভাল ইন্টারফেস লাইব্রেরিগুলি (নোটের প্রায় সমস্ত ভাষার জন্য ভাল ডাব্লুএসডিএল / এসওএপি ক্লায়েন্ট টুলিং রয়েছে)। আপনি যদি উভয়ই করার বিলাসিতা না পেয়ে থাকেন তবে কোনটির উপরে ফোকাস করা উচিত তা নির্ভর করে আপনি কোন ক্লায়েন্টের সেটকে সবচেয়ে বেশি যত্নশীল।

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


[*] পরিষেবাতে লেখক হিসাবে, আমি নিশ্চিতভাবে বলতে পারি যে উভয় ইন্টারফেস একই ক্রিয়াকলাপকে সমর্থন করেছিল - একটি সাধারণ অন্তর্নিহিত বিমূর্ত মডেল ছিল - এবং উভয় ইন্টারফেস প্রকারের জন্য "প্রাকৃতিক" স্টাইলে। পরিষেবাটির দিক থেকে, অবশ্যই এটি ছিল যে কিছু জিনিস REST এর সাথে সহজ ছিল এবং অন্যরা সোপ দিয়ে।


+1 টি। আমার সংস্থা এবং তার আত্মীয়স্বজনরা সেই সময়ের মধ্যে রয়েছে "যার এসওএপি দরকার, আমাদের বিশ্রাম আছে!"! আমরা আমাদের এসওএপি পরিষেবাদিগুলির চারপাশে সহজ আরএসটি র‌্যাপার তৈরি করি । সবকিছু সহজ বা সুস্পষ্ট হতে পারে না। কখনও কখনও এটি কঠিন এবং জটিল। সুতরাং আমরা তৃতীয় পক্ষগুলিকে একটি REST ইন্টারফেসের সাথে উপস্থাপন করছি যাতে তারা আগ্রহী মুষ্টিমেয় ক্ষেত্রগুলি সংজ্ঞায়িত করে complicated আমরা ডাব্লুসিএফ "ডুয়াল ইন্টারফেস" পরিষেবাদি ব্যবহার করি, যেখানে এসওএপি এবং আরআরএসটি উভয়ই কোড থেকে উত্পন্ন হয় (এক্সএমএসপি দ্বারা লিখিত এক্সএসডি স্কিমা থেকে উত্পন্ন)।
RoboJ1M

2

W3C এর একটি জন্য একটি আনুষ্ঠানিক সুপারিশ করেছে বিশ্রাম ডকুমেন্টেশন মান উপর ভিত্তি করে wsdl 2.0 । এখানে আইবিএম নিবন্ধের একটি উদ্ধৃতি দেওয়া হয়েছে :

ওয়েব সার্ভিস শব্দটি সাধারণত অপারেশন- বা অ্যাকশন-ভিত্তিক পরিষেবাগুলির সাথে এসওএপি এবং ডাব্লুএস * মানগুলি যেমন ডাব্লুএস-অ্যাড্রেসিং এবং ডাব্লুএস-সুরক্ষা ব্যবহার করে জড়িত। REST ওয়েব পরিষেবাদি শব্দটি সাধারণত একটি রিসোর্স-ভিত্তিক ওয়েব পরিষেবাদি আর্কিটেকচারকে বোঝায় যা HTTP এবং XML ব্যবহার করে। এই প্রতিটি আর্কিটেকচারাল ওয়েব পরিষেবা শৈলীর নিজস্ব জায়গা রয়েছে তবে সম্প্রতি অবধি, ডাব্লুএসডিএল স্ট্যান্ডার্ড উভয় স্টাইলকে সমান সমর্থন করে নি। ডাব্লুএসডিএল 1.1 এইচটিটিপি বাইন্ডিং এইচটিটিপি এবং এক্সএমএল এর সাথে যোগাযোগের বর্ণনা দেওয়ার জন্য অপর্যাপ্ত ছিল, তাই ডাব্লুএসডিএলের সাথে আরইএসটি ওয়েব পরিষেবাদির আনুষ্ঠানিকভাবে বর্ণনা করার কোনও উপায় ছিল না। ওয়ার্ল্ড ওয়াইড ওয়েব কনসোর্টিয়াম (ডাব্লু 3 সি) সুপারিশ হিসাবে ডাব্লুএসডিএল ২.০-এর প্রকাশনা, যা আরইএসইএসটি ওয়েব পরিষেবাদি বিবেচনায় রেখে ডিজাইন করা হয়েছিল তার মানে এখন আরআরইএসটি ওয়েব পরিষেবাদি বর্ণনার ভাষা আছে।


এই নিবন্ধটি ২০০৮ সালে লেখা হয়েছিল, যখন ডাব্লুএইচডিএল নিজেই কেবল ২০০৯ সালে জমা দেওয়া হয়েছিল So সুতরাং এটি ন্যায্য সুপারিশ থেকে অনেক দূরে। ডাব্লু 3 সি ডাব্লুএসডিএল 2.0 সুপারিশের 10 বছর পরে আমি এখন 2017 সালে রাজ্যটি কী উত্সাহিত করছি ... ডাব্লুএসডিএল এর সর্বশেষতম সংস্করণ আজও একই 2007 ডাব্লুএসডিএল 2.0। একক অগ্রগতি নয় (তুলনা করুন, বলুন, এইচটিএমএল এবং এইচটিটিপি)। আমি ভাবছি যদি এটি ভাল জিনিস হয়?
হেন্ডি ইরাওয়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.