ক্লায়েন্ট ধারাবাহিকভাবে 'অ্যাপ্লিকেশন / জেসন' এর গ্রহণযোগ্য শিরোনাম এবং 'অ্যাপ্লিকেশন / জেসন' এর বিষয়বস্তু ধরণের অনুরোধ করে
হ্যাঁ, এটি করা সঠিক জিনিস, তবে এটির অর্থ বিক্রেতার যত্ন নেই। যদিও আমি আপনার হতাশাকে পুরোপুরি বুঝতে পেরেছি, কারণ আমি এটিও মনে করি যে একটি JSON পরিষেবা সর্বদা একটি JSON প্রতিক্রিয়া দেওয়া উচিত তবে এমন অনেকগুলি উদাহরণ রয়েছে যেখানে এটি ঘটেনি।
প্রকল্পটি জুড়ে এই একই অনুশীলনটি দুটি ভিন্ন ভিন্ন বিক্রেতাকে এবং দুটি পৃথক পরিষেবা জুড়ে প্রয়োগ করা হয়েছে। পরিষেবাগুলিকে কেন পরিবর্তন করা দরকার তা আমি ন্যায়সঙ্গত করতে পেরেছি। বিক্রেতারা জানিয়েছেন যে ক্লায়েন্টকে এটি মোকাবেলা করা উচিত এবং এমনকি আমার পছন্দের REST গ্রন্থাগারটিও জিজ্ঞাসা করা হয়েছে (রেস্টইসি) কারণ এটি ডিফল্টরূপে 'বাক্স আউট' এর সাথে লড়াই করে না।
ঠিক আছে, আমাকে বিক্রেতার সাথে একমত হতে হবে। এটি তাদের পরিষেবা এবং যতক্ষণ না তারা স্পষ্টভাবে এটি ব্যবহারের জন্য বিশেষ কেসগুলি নথিভুক্ত করে, তবে আপনি সত্যিই চাপিয়ে দিতে পারবেন না যে তারা এটিকে পরিবর্তন করেছেন। এটি তাদের পক্ষে অসুবিধা হওয়ায় বিকাশকারীরা তাদের এপিআই গ্রহণ করতে ধীর হবে এবং তারা যদি বিকাশকারীদের কী প্রয়োজন তা শোনায় তবে তারা এটিকে পরিবর্তন করতে পারে, তবে দুঃখের বিষয় এমন কোনও নিয়ম নেই যে তাদের অবশ্যই মানদণ্ড অনুসরণ করা উচিত।
প্রশ্ন আমি কি কিছু মিস করছি?
অনুরোধ শিরোনামের অর্থ অন্য প্রান্তে সঠিকভাবে বাধা না দেওয়া থাকলে কিছুই বোঝায় না। আমি জানি যে আমি যদি পিএইচপি ব্যবহার করে একটি ওয়েব এপিআই বিকাশ করি, তবে অনুরোধ শিরোনাম সহ নরকে যেতে হবে। আমি যা চাই তা দিয়ে সাড়া দিতে পারি। অন্যদিকে, আই # তে সি # দিয়ে কনফিগার করা একটি পরিষেবা অনুরোধ শিরোনামগুলি, তাদের ধরণ এবং প্রতিক্রিয়া ধরণের হ্যান্ডলিংয়ের পক্ষে অনেক সহজ পরিচালনা করে। এপিআই তৈরিতে বিক্রেতাকে যে সরঞ্জামগুলি ব্যবহার করা হয়েছিল সেগুলির সাথে এটির অনেক কিছুই রয়েছে।
আমি কি এই সম্পর্কে পেডেন্টিক হই?
হ্যাঁ এবং না I আমার এমন বিকাশকারী বন্ধু রয়েছে যারা এর আগে চলে যেতে অক্ষম হবে। তারা সমস্যার দ্বারা এতটাই সংশোধন হয়ে যায় এবং যতক্ষণ না তারা এপিআই এটির কাজটি প্রত্যাশিতভাবে কাজ করে না ততক্ষণ অন্য কাজগুলি নিয়ে অগ্রসর হতে পারে না। এখন যে পেডেন্টিক হচ্ছে।
এটি একটি সমস্যা কারণ বিক্রেতার আপনার কাজগুলি শেষ করতে "আরও কাজ" তৈরি করেছে। যে কেউ হতাশ হতে হবে। আমি জানি আমি হব।
এই দৃশ্যে কোনও JSON এপিআই থাকা কোনও সামগ্রী-ধরণের অ্যাপ্লিকেশন / জেএসন না থাকা কি ঠিক আছে?
অবশ্যই, তবে এটি একটি ভাল অনুশীলন নয়।
কোনও ক্লায়েন্ট কেবলমাত্র সার্ভারকে বলতে পারে যে এর প্রসঙ্গের ধরণ request
কী। এটির জন্য কোনও সামগ্রী-প্রকার প্রয়োগ করার ক্ষমতা নেই response
। ক্লায়েন্ট কেবলমাত্র সার্ভারকে অবহিত করতে পারে যে এটি accept
সম্ভাব্য সামগ্রী-ধরণের সংগ্রহ করবে ।
শিরোনাম ক্ষেত্র সংজ্ঞা
অনুরোধ-শিরোনাম গ্রহণের ক্ষেত্রটি নির্দিষ্ট মিডিয়া প্রকারগুলি নির্দিষ্ট করতে ব্যবহার করা যেতে পারে যা প্রতিক্রিয়ার জন্য গ্রহণযোগ্য। স্বীকৃতি শিরোনামগুলি ইন-লাইন চিত্রের জন্য অনুরোধের ক্ষেত্রে অনুরোধটি নির্দিষ্ট করে কাঙ্ক্ষিত ধরণের ছোট্ট সংখ্যায় সীমাবদ্ধ তা নির্দেশ করতে ব্যবহার করা যেতে পারে।
কোনও ক্লায়েন্টের পক্ষে কোনও চিত্রের জন্য অনুরোধ করা সম্ভব image/jpeg
, তবে সার্ভারের প্রতিক্রিয়া text/html
এবং 404
চিত্রটি পাওয়া না গেলে তার একটি স্থিতি কোড । সার্ভারগুলিও ভুলভাবে প্রতিক্রিয়া জানাতে পারে। সেখানে অনেক ওয়ার্ডপ্রেস ওয়েবসাইট রয়েছে যা প্রতিক্রিয়া জানায় text/html
এবং 200
ফাইল খুঁজে পাওয়া যায় না এমন পৃষ্ঠাগুলির জন্য স্ট্যাটাস কোড ।
এখন এটি সার্ভারের অংশে সমস্ত বিএডি অনুশীলন। আমি আপনাকে যা বলতে চাইছি তা হ'ল এটি একেবারেই সম্ভব এবং এটি প্রায়শই ঘটে। লোকেরা যখন এই জিনিসগুলি কনফিগার করে তখন তারা কী করছে তা জানে না।
উল্লেখগুলি প্রশংসা করা হবে। বাণিজ্যিক দৃষ্টিকোণ থেকে আপনি এই পরিস্থিতিটি কীভাবে সমাধান করবেন?
আমি কয়েকটি প্রকল্পে এই সমস্যাটি চালিয়েছি। আপনি post
সার্ভারে JSON ডেটা এবং এটি একটি JSON বা এইচটিএমএল প্রতিক্রিয়া দেয়।
কোন ধরণের প্রতিক্রিয়া ছিল তা জানা সত্যিই বড় কথা নয়। যদি প্রথম চরিত্রটি হয় {
বা [
আপনি JSON ধরে নিতে পারেন। যদি এটি হয় তবে <
আপনি এইচটিএমএল ধরে নিতে পারেন। অতীতে আমি কীভাবে এটি পরিচালনা করেছি। কখনও কখনও প্রোগ্রামার যিনি এপিআই লিখেছেন তারা জ্যাক জানে এইচটিটিপি শিরোনাম সম্পর্কে। text/html
প্রতিক্রিয়া হিসাবে সবকিছু ফিরে আসে । আপনি ভাগ্যবান হলে তাদের অ্যাপাচি ডিফল্ট রূপে কনফিগার করা থাকে text/plain
যা কখনও কখনও সহায়তা করতে পারে।
এই সমস্যাগুলি বিদ্যমান এবং ভবিষ্যতে বহাল থাকবে। সার্ভার থেকে সার্ভার যোগাযোগ এখন পর্যন্ত একটি নিয়ন্ত্রিত কার্যকলাপ। এমন কোনও পরিচালনা কমিটি নেই যা কোনও সার্ভারের জন্য কোনও ইউনিয়ন থেকে একজন বিক্রেতাকে কুপিয়ে দেবে যা খারাপ HTTP প্রতিক্রিয়া দেয়।