RESTful পরিষেবাদি - WSDL সমতুল্য iv


95

আমি আরইএসইটি এবং এসওএপি সম্পর্কে পড়ছি এবং বুঝতে পারি কেন এসইএপি প্রোটোকল ব্যবহার করে কেন REST প্রয়োগ করা উপকারী হতে পারে। তবে, এখনও বিশ্রাম বিশ্বে কেন "ডাব্লুএসডিএল" সমমান নেই তা আমি বুঝতে পারি না। আমি ডব্লুএসডিএলের "কোনও প্রয়োজন নেই" বলে পোস্টগুলি দেখেছি বা এটি বিশ্রাম বিশ্বে রিডান্ট্যান্ট হবে, তবে কেন তা বুঝতে পারছি না। ম্যানুয়ালি কোডিংয়ের পরিবর্তে প্রোগ্রামিমেটিকভাবে কোনও সংজ্ঞায় আবদ্ধ হওয়া এবং প্রক্সি ক্লাস তৈরি করা কি সবসময় কার্যকর নয়? আমার অর্থ দার্শনিক বিতর্কে জড়িয়ে পড়ার অর্থ নয়, কেবল কারণেই ডাব্লুএসডিএল নেই কেন বা এর প্রয়োজন নেই তা সন্ধান করছেন। ধন্যবাদ


4
আমারও একই প্রশ্ন. এটি ক্লায়েন্টের দৃষ্টিকোণ থেকে মনে হয় বিশ্রামাগুলি পরিষেবাগুলি তখন একটি ডাব্লুএসডিএল পরিষেবা ব্যবহার করা আরও শক্ত।
w.donahue

4
আমার কাছে মনে হচ্ছে আপনি যদি কিছু সাধারণ প্রকাশ করেন তবে আপনার ডাব্লুএইডএল বা ডাব্লুএসডিএল লাগবে না। তবে আপনি যদি এসএপি-এর মতো জটিল কিছু প্রকাশ করছেন ... কার্যকারিতার আধিক্য সামাল দেওয়ার জন্য আমি একধরণের প্রতিবিম্ব এবং নেমস্পেস না রাখি ath
Brain2000

কোনও সম্ভাব্য ক্রিয়াকলাপের জন্য প্রয়োজনীয় পদ্ধতি এবং পরামিতিগুলির জন্য প্রয়োজনীয় তথ্য সরবরাহ করার কারণে এইচটিটিপি বিকল্প বিকল্পকে "সমতুল্য" হিসাবে বিবেচনা করা যায় না?
ডিম

উত্তর:


44

ওয়েব অ্যাপ্লিকেশন বর্ণনা ভাষা (WADL) মূলত RESTful পরিষেবার জন্য wsdl সমতূল্য কিন্তু একটি চলমান বিতর্ক ভালো কিছু কি আদৌ প্রয়োজন হয় কিনা আছে এর।

জো গ্রেগরিও সেই বিষয়টি নিয়ে একটি দুর্দান্ত নিবন্ধ লিখেছেন যা পাঠযোগ্য।


4
ধন্যবাদ জোসচি আমি নিবন্ধগুলি পড়েছি, তবে দ্বিতীয়টি খুব দৃinc়প্রত্যয়ী পাইনি। তিনি কোন পয়েন্টগুলিকে সম্বোধন করেছেন আপনি সবচেয়ে মূল্যবান বলে মনে করেন?
স্কাজ

4
এটি লক্ষণীয় যে, নেটও মেটাডেটা প্রকাশের একটি উপায় রয়েছে ( এমএসডিএন.মাইক্রোসফটকম /en-us/library/ms730243.aspx )। এই বলে যে, বেশিরভাগ REST পরিষেবাদি যেগুলি আমি বড় সাইটের দ্বারা বিকাশিত দেখেছি সেগুলির মধ্যে প্রধান প্রোগ্রামিং ভাষার (জাভা,। নেট, পিএইচপি, ইত্যাদি) জন্য বিভিন্ন ধরণের ডাউনলোডযোগ্য ক্লায়েন্ট তৈরি করা রয়েছে। আমার মতে, এটি পরিষেবা প্রদানকারীদের উপর অনেক বোঝা ফেলে places
ডানা

4
@ ডানা: এমন একটি পরিষেবা লেখার পক্ষে তেমন কোনও বিষয় মনে হচ্ছে না যা ক্লায়েন্টকে লেখার জন্য আপনারও দরকার?
ব্লুচিপি

19

ডাব্লুএসডিএল পরিসেবা শেষের পয়েন্টগুলি বর্ণনা করে। REST ক্লায়েন্টগুলি সার্ভারের শেষ পয়েন্টগুলিতে মিলিত হওয়া উচিত নয় (অর্থাত্ ইউআরএলগুলিতে আগে থেকে সচেতন হওয়া উচিত নয়)। REST ক্লায়েন্টগুলি মিডিয়া-টাইপগুলিতে মিলিত হয় যা ক্লায়েন্ট এবং সার্ভারের মধ্যে স্থানান্তরিত হয়।

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


4
আপনি কি আরও একটু বিস্তারিত বলতে পারেন? আমি ভয় পেয়েছি যে আমি এটি পাই না। ধন্যবাদ
স্কাজ

4
প্রক্সি ক্লাসগুলি সংকলনের সময় মেশিনের বৈধতা পাওয়ার উপায়। এগুলি ব্যতীত আপনার হাতে কেবল ডক্স এবং টেস্টিং-ভিত্তিক "বৈধতা" লেখা আছে।
এরিক গ্রেঞ্জ

4
@ এরিকগ্রঞ্জ ... এবং তবুও এই পদ্ধতিটি ওয়েবের জন্য এখনও পর্যন্ত বেশ ভালভাবে কাজ করেছে।
ড্যারেল মিলার

4
@ ড্যারেলমিলার নির্ভর করে আপনি যা "ভাল কাজ করেছেন" তার উপর নির্ভর করে, এটি 80 এর দশকের মতো যখন প্রত্যেকে কাগজ ডকস থেকে তার ইন্টারপগুলি লিখত, তাই এটি কার্যকর হয়, তবে "ভাল"?
এরিক গ্রেঞ্জ

4
@ ব্লুচিপি মিডিয়া ধরণের চশমাগুলি পুরানো ফ্যাশন পদ্ধতিতে ডিল করা হয়। হয় আপনি স্পেকটির জন্য একটি বিদ্যমান পার্সার খুঁজে পান, বা আপনি চশমাটি পড়ুন এবং নিজেই লিখুন। গুরুত্বপূর্ণ বিষয়টি লক্ষ্যণীয় হ'ল উদ্দেশ্যটি হ'ল মিডিয়া টাইপ স্পেসিকে এপিআই জুড়ে পুনরায় ব্যবহারযোগ্য। প্রতিটি এপিআই এর জন্য একটি নতুন পার্সার লেখা পয়েন্টটি পরাস্ত করে। সঠিক হয়ে গেলে বিশ্রামটি ক্লায়েন্ট এবং সার্ভারের স্বাধীন বিবর্তনের খুব দীর্ঘমেয়াদী সুবিধার জন্য।
ড্যারেল মিলার

8

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

উদাহরণস্বরূপ, একটি বর্তমান সংস্থান দেওয়া, আপনার সম্পর্কিত অন্য সংস্থাগুলির একটি সেট ওএস লিঙ্ক রয়েছে।

তবে আমি বিশ্রাম ক্লায়েন্টদের খুঁজে পাইনি যা এই ফর্ম্যাটটিকে সমর্থন করে বা স্বয়ংক্রিয়ভাবে উত্পন্ন করতে কোনও বৈশিষ্ট্য সহ রেস্ট সার্ভার সলিউশন।

আমি মনে করি এটি সম্পর্কে একটি সিদ্ধান্তের জন্য অনেক দীর্ঘ পথ আছে। এইচটিএমএল দীর্ঘ গল্প এবং ডাব্লু 3 সি বনাম ব্রাউজারগুলি দেখুন।

হাইপারমিডিয়ার মতো রেস্ট সম্পর্কে আরও তথ্যের জন্য এটি দেখুন: http://en.wikedia.org/wiki/HATEOAS

দ্রষ্টব্য: রয় ফিল্ডিং হাইপারমিডিয়া পদ্ধতির ছাড়াই রেস্ট এপিসে এই প্রবণতাগুলির সমালোচনা করছেন: http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

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

আসুন পরবর্তী অধ্যায়গুলি দেখুন;)


8

ম্যানুয়ালি কোডিংয়ের পরিবর্তে প্রোগ্রামিমেটিকভাবে কোনও সংজ্ঞায় আবদ্ধ হওয়া এবং প্রক্সি ক্লাস তৈরি করা কি সবসময় কার্যকর নয়?

আন্তরিকভাবে সম্মত হন, এই কারণেই আমি Swagger.io ব্যবহার করি

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

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

আরও দেখুন: র‌্যামএল


জানতাম না সোয়াগারও তা করেছে। ভেবেছিলেন এটি কেবলমাত্র REST এপিআইয়ের জন্য ডকুমেন্টেশন / জেনেরিক কাঠামো
রবার্ট ডন্ডন

6

এখানে একটি আরএসডিএল রয়েছে (বিশ্রামের পরিষেবা পরিষেবা বিবরণ ভাষা) যা ডাব্লুএসডিএলের সমান। নীচের ইউআরএলটি তার অনুশীলনটি http://en.wikedia.org/wiki/HATEOAS এবং http://en.wikedia.org/wiki/RSDL বর্ণনা করে । সমস্যাটি হ'ল আমাদের কাছে ডাব্লুএসডিএল থেকে জাভা, বা বিপরীতে কোড উত্পন্ন করার জন্য প্রচুর সরঞ্জাম রয়েছে। তবে আরএসডিএল থেকে কোড উত্পন্ন করার কোনও সরঞ্জাম আমি পাইনি।


3

ডাব্লুএসডিএল শেষ বিন্দু এবং তাদের বার্তাগুলির বিবরণ মঞ্জুর করার জন্য এক্সটেনসিবল যা ম্যাসেজ ফর্ম্যাট বা নেটওয়ার্ক প্রোটোকল যোগাযোগের জন্য ব্যবহৃত হয় তা নির্বিশেষে

তবে, আরইএসটি এইচটিটিপি ক্রিয়াগুলি এবং ইউআরআই ব্যবহার করে কোনও অবজেক্টের রাষ্ট্রের প্রতিনিধিত্ব করতে নেটওয়ার্ক প্রোটোকল ব্যবহার করে।

ডাব্লুএসডিএলস আপনাকে এই জায়গায় বলেছে, আপনি যদি এই বার্তাটি প্রেরণ করেন তবে আপনি এই ক্রিয়াটি সম্পাদন করবেন এবং ফলস্বরূপ এই ফর্ম্যাটটি ফিরে পাবেন।

REST এ, আমি যদি একটি নতুন প্রোফাইল তৈরি করতে চাইতাম তবে আমি POSTJSON বডি বা HTTP সার্ভারের ভেরিয়েবলগুলি দিয়ে আমার প্রোফাইলটি URL- এ বর্ণনা করে ক্রিয়াটি ব্যবহার করব/profile

POSTস্থিতি কোড 201 CREATEDএবং শিরোলেখ ব্যবহার করে একটি সার্ভার-সাইড উত্পন্ন আইডি ফিরিয়ে দেওয়া উচিত Location: *new_profile_id*(উদাহরণস্বরূপ 12345)

আমি তখন /profile/12345HTTP ক্রিয়া ব্যবহারের অবস্থার পরিবর্তন করে আপডেটগুলি সম্পাদন করতে পারি POST, আমার ইমেল ঠিকানা বা ফোন নম্বর পরিবর্তন করতে বলি। স্পষ্টতই দূরবর্তী বস্তুর অবস্থা পরিবর্তন করা changing

GET বর্তমান অবস্থা ফিরে আসবে /profile/12345

PUT সাধারণত ক্লায়েন্ট-সাইড উত্পাদিত আইডির জন্য ব্যবহৃত হয়

DELETEসুস্পষ্ট

HEAD, মৃতদেহ না ফিরিয়ে স্ট্যাটাস পান।

REST এর সাথে এটি একটি ভাল ডিজাইন করা API এর মাধ্যমে স্ব-ডকুমেন্টিং হওয়া উচিত এবং এর ফলে সহজেই ব্যবহারযোগ্য।

এটি রেস্টে একটি দুর্দান্ত নিবন্ধ । এটি সত্যই আমাকে এটি বুঝতে সাহায্য করে।


4
আমি যুক্তি দিয়ে বলব যে এটি আরইএসটি-র হাইপারমিডিয়া সীমাবদ্ধতা, ডাব্লুএসডিএলের প্রয়োজনীয়তা অপসারণকারী ইউনিফর্ম ইন্টারফেসের সীমাবদ্ধতার চেয়ে বেশি।
ড্যারেল মিলার

4
আপনি কোথায় "প্রোফাইল" আবিষ্কার করেন? একজনের পরিবর্তে, আপনার কয়েক ডজন থাকে যখন আপনি কীভাবে সহায়তা সরবরাহ করবেন? সেখানে উপস্থিত সমস্ত পরিষেবা হস্ত-লিখিত ডকস এবং ম্যানুয়ালি লিখিত এপিআই-র উপর নির্ভর করে, যা শ্রম নিবিড় এবং ত্রুটি-প্রবণ।
এরিক গ্রেঞ্জ

4
আমি @ এরিকগ্রঞ্জের সাথে একমত - দয়া করে আপনি কীভাবে সিআরডি (এল) অপারেশন পরিচালনা করতে পারবেন তা আপনি কীভাবে জানাতে পারবেন ... যদি না কেউ অন্য কোথাও না লিখে থাকে?
ব্লুচিপি

2

ডাব্লুএসডিএল ২.০ স্পেসিফিকেশন আরএসটি ওয়েব পরিষেবাদির জন্য সমর্থন যোগ করেছে। উভয় বিশ্বের দৃশ্যের সেরা। সমস্যাটি হ'ল ডাব্লুএসডিএল ২.০ এখনও বেশিরভাগ সরঞ্জামের দ্বারা ব্যাপকভাবে সমর্থিত নয়। ডাব্লুএসডিএল ২.০ হ'ল ডাব্লু 3 সি প্রস্তাবিত, ডাব্লুএসডিএল 1.1 ডাব্লু 3 সি প্রস্তাবিত নয় তবে সরঞ্জাম এবং বিকাশকারীদের দ্বারা বহুলভাবে সমর্থনযোগ্য। রেফ: http://www.ibm.com/developerworks/library/ws-restwsdl/


0

ওয়েব অ্যাপ্লিকেশন বর্ণনা ভাষা (ডাব্লুএডিএল) একটি এক্সএমএল ভোকাবুলারি যা RESTful ওয়েব পরিষেবাদি বর্ণনা করতে ব্যবহৃত হয়।

ডাব্লুএসডিএলের মতো, একটি জেনেরিক ক্লায়েন্ট একটি ডাব্লুএডিএল ফাইল লোড করতে পারে এবং তত্ক্ষণাত সংশ্লিষ্ট ওয়েব পরিষেবার সম্পূর্ণ কার্যকারিতা অ্যাক্সেস করতে সজ্জিত হতে পারে।

যেহেতু RESTful পরিষেবাদির সহজ ইন্টারফেস রয়েছে, ডাব্লুএসডিএল আরপিসি-স্টাইলের এসওএপি পরিষেবাগুলিতে যেমন ডাব্লুএসডিএল রয়েছে ততটা প্রয়োজনীয় নয়।

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