আমি একটি REST এপিআই নিয়ে কাজ করছি যা এমন সার্ভারে থাকে যা প্রচুর আইওটি ডিভাইসগুলির জন্য ডেটা পরিচালনা করে।
আমার কাজটি হ'ল ডিভাইসগুলি সম্পর্কে নির্দিষ্ট পারফরম্যান্সের তথ্য সংগ্রহ করতে এপিআই ব্যবহার করে সার্ভারকে জিজ্ঞাসা করা।
একটি উদাহরণে, আমি উপলব্ধ ডিভাইস এবং তাদের সম্পর্কিত শনাক্তকারীদের একটি তালিকা পেয়েছি, পরে সেই শনাক্তকারীদের (জিইউডি) ব্যবহার করে আরও বিশদ জানতে সার্ভারটি জিজ্ঞাসা করব।
সার্ভারটি 500 Internal Server Error
এই আইডিগুলির মধ্যে একটিতে একটি প্রশ্নের জন্য ফেরত দিচ্ছে। আমার আবেদনে, একটি ব্যতিক্রম ছুঁড়ে দেওয়া হয়েছে এবং আমি ত্রুটি সম্পর্কে বিশদটি দেখতে পাচ্ছি না। যদি আমি পোস্টম্যানের সাথে প্রতিক্রিয়াটি আরও ঘনিষ্ঠভাবে পরীক্ষা করি তবে আমি দেখতে পাচ্ছি যে সার্ভারটি শরীরে জেএসএন ফিরিয়ে দিয়েছে যা এতে রয়েছে:
errorMessage: "This ID does not exist"
।
সার্ভার ID শুরু করার সাথে সাথে সত্যটি সরবরাহ করেছিল তা উপেক্ষা করুন - এটি বিকাশকারীদের জন্য একটি পৃথক সমস্যা।
500 Internal Server Error
কোনও জিজ্ঞাসা অস্তিত্ব নেই এমন একটি অবজেক্টের রেফারেন্স দেওয়ার জন্য কোনও REST এপিআই কি ফিরিয়ে দেবে ? আমার চিন্তাভাবনা অনুসারে, HTTP প্রতিক্রিয়া কোডগুলি অবশ্যই API এর অভ্যন্তরীণ যান্ত্রিকতার চেয়ে REST কলের স্থিতি সম্পর্কে কঠোরভাবে উল্লেখ করা উচিত। আমি 200 OK
ত্রুটি এবং বিবরণ সম্বলিত প্রতিক্রিয়া সহ একটি প্রত্যাশা করব , যা প্রশ্নে থাকা API এর মালিকানাধীন হবে।
আমার কাছে এটি ঘটে যে আরএসটি কল কীভাবে কাঠামোগত হয় তার উপর নির্ভর করে প্রত্যাশার মধ্যে একটি সম্ভাব্য পার্থক্য রয়েছে।
এই উদাহরণগুলি বিবেচনা করুন:
http://example.com/restapi/deviceinfo?id=123
http://example.com/restapi/device/123/info
প্রথম ক্ষেত্রে, ডিভাইস আইডি একটি জিইটি ভেরিয়েবল হিসাবে পাস করা হয়। একটি 404 বা 500 ইঙ্গিত দেয় যে পাথ ( /restapi/deviceinfo
) হয় না পাওয়া যায় বা সার্ভারের ত্রুটির ফলস্বরূপ।
দ্বিতীয় ক্ষেত্রে, ডিভাইস আইডি URL এর অংশ। আমি একটি সম্পর্কে আরও বোধগম্য হব 404 Not Found
, তবে এখনও পথের কোন অংশগুলি ভেরিয়েবল বনাম শেষবিন্দু হিসাবে ব্যাখ্যা করা হয়েছে তার ভিত্তিতে তর্ক করতে পারি।